From a0666b3ab907c0036f5e3f036b32e9ec5a6e551d Mon Sep 17 00:00:00 2001 From: Stefan Radomski Date: Sun, 20 Jan 2013 18:34:02 +0100 Subject: Regenerated V8 DOM and beautified code --- apps/mmi-browser.cpp | 8 +- contrib/dom/scripts/CodeGeneratorArabicaV8.pm | 8 +- src/uscxml/Factory.cpp | 118 ++-- src/uscxml/Factory.h | 194 ++++--- src/uscxml/Interpreter.cpp | 212 +++---- src/uscxml/Interpreter.h | 70 +-- src/uscxml/Message.h | 2 +- src/uscxml/URL.cpp | 171 +++--- src/uscxml/URL.h | 149 +++-- src/uscxml/concurrency/BlockingQueue.h | 10 +- .../concurrency/eventqueue/DelayedEventQueue.cpp | 8 +- src/uscxml/concurrency/tinythread.cpp | 20 +- src/uscxml/concurrency/tinythread.h | 2 +- .../ecmascript/JavaScriptCore/JSCDataModel.cpp | 6 +- .../ecmascript/JavaScriptCore/JSCDataModel.h | 2 +- .../ecmascript/JavaScriptCore/dom/JSCDOM.cpp | 4 +- .../ecmascript/JavaScriptCore/dom/JSCDOM.h | 4 +- .../ecmascript/JavaScriptCore/dom/JSCNode.cpp | 102 ++-- .../ecmascript/JavaScriptCore/dom/JSCNode.h | 272 ++++++--- .../datamodel/ecmascript/v8/V8DataModel.cpp | 44 +- .../plugins/datamodel/ecmascript/v8/dom/V8Attr.cpp | 82 +-- .../plugins/datamodel/ecmascript/v8/dom/V8Attr.h | 84 +-- .../datamodel/ecmascript/v8/dom/V8CDATASection.cpp | 12 +- .../datamodel/ecmascript/v8/dom/V8CDATASection.h | 40 +- .../ecmascript/v8/dom/V8CharacterData.cpp | 144 ++--- .../datamodel/ecmascript/v8/dom/V8CharacterData.h | 102 ++-- .../datamodel/ecmascript/v8/dom/V8Comment.cpp | 12 +- .../datamodel/ecmascript/v8/dom/V8Comment.h | 40 +- .../plugins/datamodel/ecmascript/v8/dom/V8DOM.cpp | 4 +- .../plugins/datamodel/ecmascript/v8/dom/V8DOM.h | 77 ++- .../ecmascript/v8/dom/V8DOMImplementation.cpp | 108 ++-- .../ecmascript/v8/dom/V8DOMImplementation.h | 56 +- .../datamodel/ecmascript/v8/dom/V8Document.cpp | 552 +++++++++--------- .../datamodel/ecmascript/v8/dom/V8Document.h | 166 +++--- .../ecmascript/v8/dom/V8DocumentCustom.cpp | 54 +- .../ecmascript/v8/dom/V8DocumentFragment.cpp | 12 +- .../ecmascript/v8/dom/V8DocumentFragment.h | 40 +- .../datamodel/ecmascript/v8/dom/V8DocumentType.cpp | 108 ++-- .../datamodel/ecmascript/v8/dom/V8DocumentType.h | 94 +-- .../datamodel/ecmascript/v8/dom/V8Element.cpp | 418 ++++++------- .../datamodel/ecmascript/v8/dom/V8Element.h | 154 ++--- .../datamodel/ecmascript/v8/dom/V8Entity.cpp | 42 +- .../plugins/datamodel/ecmascript/v8/dom/V8Entity.h | 58 +- .../ecmascript/v8/dom/V8EntityReference.cpp | 12 +- .../ecmascript/v8/dom/V8EntityReference.h | 40 +- .../datamodel/ecmascript/v8/dom/V8NamedNodeMap.cpp | 258 ++++---- .../datamodel/ecmascript/v8/dom/V8NamedNodeMap.h | 104 ++-- .../plugins/datamodel/ecmascript/v8/dom/V8Node.cpp | 646 ++++++++++----------- .../plugins/datamodel/ecmascript/v8/dom/V8Node.h | 246 ++++---- .../datamodel/ecmascript/v8/dom/V8NodeList.cpp | 54 +- .../datamodel/ecmascript/v8/dom/V8NodeList.h | 50 +- .../datamodel/ecmascript/v8/dom/V8NodeSet.cpp | 44 +- .../datamodel/ecmascript/v8/dom/V8NodeSet.h | 60 +- .../ecmascript/v8/dom/V8NodeSetCustom.cpp | 80 +-- .../datamodel/ecmascript/v8/dom/V8Notation.cpp | 32 +- .../datamodel/ecmascript/v8/dom/V8Notation.h | 52 +- .../ecmascript/v8/dom/V8ProcessingInstruction.cpp | 44 +- .../ecmascript/v8/dom/V8ProcessingInstruction.h | 54 +- .../plugins/datamodel/ecmascript/v8/dom/V8Text.cpp | 44 +- .../plugins/datamodel/ecmascript/v8/dom/V8Text.h | 46 +- .../datamodel/ecmascript/v8/dom/V8XPathResult.cpp | 104 ++-- .../datamodel/ecmascript/v8/dom/V8XPathResult.h | 104 ++-- .../ecmascript/v8/dom/V8XPathResultCustom.cpp | 32 +- .../plugins/datamodel/prolog/swi/SWIDataModel.cpp | 93 +-- .../graphics/openscenegraph/CompositeDisplay.cpp | 147 +++-- .../graphics/openscenegraph/CompositeDisplay.h | 50 +- .../invoker/graphics/openscenegraph/OSGInvoker.cpp | 576 +++++++++--------- .../invoker/graphics/openscenegraph/OSGInvoker.h | 110 ++-- .../plugins/invoker/heartbeat/HeartbeatInvoker.cpp | 80 +-- .../plugins/invoker/heartbeat/HeartbeatInvoker.h | 16 +- .../plugins/invoker/sample/SampleInvoker.cpp | 2 +- src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp | 10 +- .../plugins/invoker/umundo/UmundoInvoker.cpp | 68 +-- src/uscxml/plugins/invoker/umundo/UmundoInvoker.h | 2 +- .../basichttp/libevent/EventIOProcessor.cpp | 4 +- test/src/test-arabica-events.cpp | 64 +- test/src/test-osg.cpp | 18 +- test/src/test-prolog-swi.cpp | 112 ++-- test/src/test-url.cpp | 78 +-- 79 files changed, 3824 insertions(+), 3577 deletions(-) diff --git a/apps/mmi-browser.cpp b/apps/mmi-browser.cpp index b05b086..c423871 100644 --- a/apps/mmi-browser.cpp +++ b/apps/mmi-browser.cpp @@ -48,10 +48,10 @@ int main(int argc, char** argv) { Factory::getInstance(); Interpreter* interpreter = Interpreter::fromURI(argv[argc - 1]); - if (interpreter) { - interpreter->start(); - while(interpreter->runOnMainThread(25)); - } + if (interpreter) { + interpreter->start(); + while(interpreter->runOnMainThread(25)); + } return EXIT_SUCCESS; } \ No newline at end of file diff --git a/contrib/dom/scripts/CodeGeneratorArabicaV8.pm b/contrib/dom/scripts/CodeGeneratorArabicaV8.pm index 7187f2a..3382c24 100644 --- a/contrib/dom/scripts/CodeGeneratorArabicaV8.pm +++ b/contrib/dom/scripts/CodeGeneratorArabicaV8.pm @@ -314,7 +314,7 @@ sub GenerateImplementationAttributes v8::Handle V8${interfaceName}::${attrName}AttrGetter(v8::Local property, const v8::AccessorInfo& info) { v8::Local self = info.Holder(); - V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + struct V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0)); END if (IsWrapperType($attrType)) { AddToImplIncludes("V8".$attrType.".h"); @@ -324,7 +324,7 @@ END v8::Handle arbaicaRetCtor = V8${attrType}::getTmpl()->GetFunction(); v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - V8${attrType}::V8${attrType}Private* retPrivData = new V8${attrType}::V8${attrType}Private(); + struct V8${attrType}::V8${attrType}Private* retPrivData = new V8${attrType}::V8${attrType}Private(); retPrivData->dom = privData->dom; retPrivData->arabicaThis = arbaicaRet; @@ -349,7 +349,7 @@ END my $arabicaSetter = IdlToArabicaAttrSetter($attrName); push(@implContent, "\n void V8${interfaceName}::${attrName}AttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) {"); push(@implContent, "\n v8::Local self = info.Holder();"); - push(@implContent, "\n V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0));"); + push(@implContent, "\n struct V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0));"); my ($handle, $deref) = IdlToArgHandle($attribute->signature->type, "local".ucfirst($attribute->signature->name), "value"); @@ -393,7 +393,7 @@ END # get this push(@implContent, "\n v8::Local self = args.Holder();"); - push(@implContent, "\n V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0));"); + push(@implContent, "\n struct V8${interfaceName}Private* privData = V8DOM::toClassPtr(self->GetInternalField(0));"); # arguments to local handles my $parameterIndex = 0; diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp index d90ab46..b65f088 100644 --- a/src/uscxml/Factory.cpp +++ b/src/uscxml/Factory.cpp @@ -131,91 +131,91 @@ Factory::~Factory() { void Factory::registerIOProcessor(IOProcessorImpl* ioProcessor) { std::set names = ioProcessor->getNames(); std::set::iterator nameIter = names.begin(); - if (nameIter != names.end()) { - std::string canonicalName = *nameIter; - _ioProcessors[canonicalName] = ioProcessor; - while(nameIter != names.end()) { - _ioProcessorAliases[*nameIter] = canonicalName; - nameIter++; - } - } + if (nameIter != names.end()) { + std::string canonicalName = *nameIter; + _ioProcessors[canonicalName] = ioProcessor; + while(nameIter != names.end()) { + _ioProcessorAliases[*nameIter] = canonicalName; + nameIter++; + } + } } void Factory::registerDataModel(DataModelImpl* dataModel) { std::set names = dataModel->getNames(); std::set::iterator nameIter = names.begin(); - if (nameIter != names.end()) { - std::string canonicalName = *nameIter; - _dataModels[canonicalName] = dataModel; - while(nameIter != names.end()) { - _dataModelAliases[*nameIter] = canonicalName; - nameIter++; - } - } + if (nameIter != names.end()) { + std::string canonicalName = *nameIter; + _dataModels[canonicalName] = dataModel; + while(nameIter != names.end()) { + _dataModelAliases[*nameIter] = canonicalName; + nameIter++; + } + } } - + void Factory::registerInvoker(InvokerImpl* invoker) { std::set names = invoker->getNames(); std::set::iterator nameIter = names.begin(); - if (nameIter != names.end()) { - std::string canonicalName = *nameIter; - _invokers[canonicalName] = invoker; - while(nameIter != names.end()) { - _invokerAliases[*nameIter] = canonicalName; - nameIter++; - } - } + if (nameIter != names.end()) { + std::string canonicalName = *nameIter; + _invokers[canonicalName] = invoker; + while(nameIter != names.end()) { + _invokerAliases[*nameIter] = canonicalName; + nameIter++; + } + } } boost::shared_ptr Factory::createInvoker(const std::string& type, Interpreter* interpreter) { Factory* factory = getInstance(); - if (factory->_invokerAliases.find(type) == factory->_invokerAliases.end()) { - LOG(ERROR) << "No " << type << " Invoker known"; - return boost::shared_ptr(); - } - - std::string canonicalName = factory->_invokerAliases[type]; + if (factory->_invokerAliases.find(type) == factory->_invokerAliases.end()) { + LOG(ERROR) << "No " << type << " Invoker known"; + return boost::shared_ptr(); + } + + std::string canonicalName = factory->_invokerAliases[type]; if (factory->_invokers.find(canonicalName) == factory->_invokers.end()) { - LOG(ERROR) << "Invoker " << type << " known as " << canonicalName << " but not prototype is available in factory"; - return boost::shared_ptr(); - } - - return boost::static_pointer_cast(factory->_invokers[canonicalName]->create(interpreter)); + LOG(ERROR) << "Invoker " << type << " known as " << canonicalName << " but not prototype is available in factory"; + return boost::shared_ptr(); + } + + return boost::static_pointer_cast(factory->_invokers[canonicalName]->create(interpreter)); } boost::shared_ptr Factory::createDataModel(const std::string& type, Interpreter* interpreter) { Factory* factory = getInstance(); - if (factory->_dataModelAliases.find(type) == factory->_dataModelAliases.end()) { - LOG(ERROR) << "No " << type << " DataModel known"; - return boost::shared_ptr(); - } - - std::string canonicalName = factory->_dataModelAliases[type]; + if (factory->_dataModelAliases.find(type) == factory->_dataModelAliases.end()) { + LOG(ERROR) << "No " << type << " DataModel known"; + return boost::shared_ptr(); + } + + std::string canonicalName = factory->_dataModelAliases[type]; if (factory->_dataModels.find(canonicalName) == factory->_dataModels.end()) { - LOG(ERROR) << "DataModel " << type << " known as " << canonicalName << " but not prototype is available in factory"; - return boost::shared_ptr(); - } - - return factory->_dataModels[canonicalName]->create(interpreter); + LOG(ERROR) << "DataModel " << type << " known as " << canonicalName << " but not prototype is available in factory"; + return boost::shared_ptr(); + } + + return factory->_dataModels[canonicalName]->create(interpreter); } boost::shared_ptr Factory::createIOProcessor(const std::string& type, Interpreter* interpreter) { Factory* factory = getInstance(); - if (factory->_ioProcessorAliases.find(type) == factory->_ioProcessorAliases.end()) { - LOG(ERROR) << "No " << type << " IOProcessor known"; - return boost::shared_ptr(); - } - - std::string canonicalName = factory->_ioProcessorAliases[type]; + if (factory->_ioProcessorAliases.find(type) == factory->_ioProcessorAliases.end()) { + LOG(ERROR) << "No " << type << " IOProcessor known"; + return boost::shared_ptr(); + } + + std::string canonicalName = factory->_ioProcessorAliases[type]; if (factory->_ioProcessors.find(canonicalName) == factory->_ioProcessors.end()) { - LOG(ERROR) << "IOProcessor " << type << " known as " << canonicalName << " but not prototype is available in factory"; - return boost::shared_ptr(); - } - - return factory->_ioProcessors[canonicalName]->create(interpreter); + LOG(ERROR) << "IOProcessor " << type << " known as " << canonicalName << " but not prototype is available in factory"; + return boost::shared_ptr(); + } + + return factory->_ioProcessors[canonicalName]->create(interpreter); } - + Factory* Factory::getInstance() { if (_instance == NULL) { _instance = new Factory(); diff --git a/src/uscxml/Factory.h b/src/uscxml/Factory.h index 3cc8018..e1aebea 100644 --- a/src/uscxml/Factory.h +++ b/src/uscxml/Factory.h @@ -47,11 +47,11 @@ public: virtual void setInterpreter(Interpreter* interpreter) { _interpreter = interpreter; } - + virtual Data getDataModelVariables() = 0; virtual void send(const SendRequest& req) = 0; - virtual void runOnMainThread() {}; + virtual void runOnMainThread() {}; protected: Interpreter* _interpreter; @@ -59,23 +59,40 @@ protected: class IOProcessor { public: - IOProcessor() : _impl() {} - IOProcessor(boost::shared_ptr const impl) : _impl(impl) { } - IOProcessor(const IOProcessor& other) : _impl(other._impl) { } - virtual ~IOProcessor() {}; + IOProcessor() : _impl() {} + IOProcessor(boost::shared_ptr const impl) : _impl(impl) { } + IOProcessor(const IOProcessor& other) : _impl(other._impl) { } + virtual ~IOProcessor() {}; - operator bool() const { return _impl;} - bool operator< (const IOProcessor& other) const { return _impl < other._impl; } - bool operator==(const IOProcessor& other) const { return _impl == other._impl; } - bool operator!=(const IOProcessor& other) const { return _impl != other._impl; } - IOProcessor& operator= (const IOProcessor& other) { _impl = other._impl; return *this; } + operator bool() const { + return _impl; + } + bool operator< (const IOProcessor& other) const { + return _impl < other._impl; + } + bool operator==(const IOProcessor& other) const { + return _impl == other._impl; + } + bool operator!=(const IOProcessor& other) const { + return _impl != other._impl; + } + IOProcessor& operator= (const IOProcessor& other) { + _impl = other._impl; + return *this; + } - virtual Data getDataModelVariables() const { return _impl->getDataModelVariables(); }; - virtual void send(const SendRequest& req) { return _impl->send(req); }; - virtual void runOnMainThread() { return _impl->runOnMainThread(); } + virtual Data getDataModelVariables() const { + return _impl->getDataModelVariables(); + }; + virtual void send(const SendRequest& req) { + return _impl->send(req); + }; + virtual void runOnMainThread() { + return _impl->runOnMainThread(); + } protected: - boost::shared_ptr _impl; + boost::shared_ptr _impl; }; class InvokerImpl : public IOProcessorImpl { @@ -87,28 +104,40 @@ public: class Invoker : public IOProcessor { public: - Invoker() : _impl() {} - Invoker(boost::shared_ptr const impl) : IOProcessor(impl), _impl(impl) { } - Invoker(const Invoker& other) : IOProcessor(other._impl), _impl(other._impl) { } - virtual ~Invoker() {}; - - operator bool() const { return _impl;} - bool operator< (const Invoker& other) const { return _impl < other._impl; } - bool operator==(const Invoker& other) const { return _impl == other._impl; } - bool operator!=(const Invoker& other) const { return _impl != other._impl; } - Invoker& operator= (const Invoker& other) { - _impl = other._impl; - IOProcessor::_impl = _impl; - return *this; - } - - virtual void invoke(InvokeRequest& req) { _impl->invoke(req); } - virtual void sendToParent(SendRequest& req) { _impl->sendToParent(req); } + Invoker() : _impl() {} + Invoker(boost::shared_ptr const impl) : IOProcessor(impl), _impl(impl) { } + Invoker(const Invoker& other) : IOProcessor(other._impl), _impl(other._impl) { } + virtual ~Invoker() {}; + + operator bool() const { + return _impl; + } + bool operator< (const Invoker& other) const { + return _impl < other._impl; + } + bool operator==(const Invoker& other) const { + return _impl == other._impl; + } + bool operator!=(const Invoker& other) const { + return _impl != other._impl; + } + Invoker& operator= (const Invoker& other) { + _impl = other._impl; + IOProcessor::_impl = _impl; + return *this; + } + + virtual void invoke(InvokeRequest& req) { + _impl->invoke(req); + } + virtual void sendToParent(SendRequest& req) { + _impl->sendToParent(req); + } protected: - boost::shared_ptr _impl; + boost::shared_ptr _impl; }; - + class DataModelImpl { public: virtual ~DataModelImpl() {} @@ -135,36 +164,71 @@ public: class DataModel { public: - DataModel() : _impl() {} - DataModel(boost::shared_ptr const impl) : _impl(impl) { } - DataModel(const DataModel& other) : _impl(other._impl) { } - virtual ~DataModel() {}; - - operator bool() const { return _impl;} - bool operator< (const DataModel& other) const { return _impl < other._impl; } - bool operator==(const DataModel& other) const { return _impl == other._impl; } - bool operator!=(const DataModel& other) const { return _impl != other._impl; } - DataModel& operator= (const DataModel& other) { _impl = other._impl; return *this; } - - virtual bool validate(const std::string& location, const std::string& schema) { return _impl->validate(location, schema); } - virtual void setEvent(const Event& event) { return _impl->setEvent(event); } - virtual Data getStringAsData(const std::string& content) { return _impl->getStringAsData(content); } - - virtual uint32_t getLength(const std::string& expr) { return _impl->getLength(expr); } - virtual void pushContext() { return _impl->pushContext(); } - virtual void popContext() { return _impl->popContext(); } - - virtual void registerIOProcessor(const std::string& name, const IOProcessor& ioprocessor) { _impl->registerIOProcessor(name, ioprocessor); } - - virtual void eval(const std::string& expr) { return _impl->eval(expr); } - virtual std::string evalAsString(const std::string& expr) { return _impl->evalAsString(expr); } - virtual bool evalAsBool(const std::string& expr) { return _impl->evalAsBool(expr); } - - virtual void assign(const std::string& location, const std::string& expr) { return _impl->assign(location, expr); } - virtual void assign(const std::string& location, const Data& data) { return _impl->assign(location, data); } + DataModel() : _impl() {} + DataModel(boost::shared_ptr const impl) : _impl(impl) { } + DataModel(const DataModel& other) : _impl(other._impl) { } + virtual ~DataModel() {}; + + operator bool() const { + return _impl; + } + bool operator< (const DataModel& other) const { + return _impl < other._impl; + } + bool operator==(const DataModel& other) const { + return _impl == other._impl; + } + bool operator!=(const DataModel& other) const { + return _impl != other._impl; + } + DataModel& operator= (const DataModel& other) { + _impl = other._impl; + return *this; + } + + virtual bool validate(const std::string& location, const std::string& schema) { + return _impl->validate(location, schema); + } + virtual void setEvent(const Event& event) { + return _impl->setEvent(event); + } + virtual Data getStringAsData(const std::string& content) { + return _impl->getStringAsData(content); + } + + virtual uint32_t getLength(const std::string& expr) { + return _impl->getLength(expr); + } + virtual void pushContext() { + return _impl->pushContext(); + } + virtual void popContext() { + return _impl->popContext(); + } + + virtual void registerIOProcessor(const std::string& name, const IOProcessor& ioprocessor) { + _impl->registerIOProcessor(name, ioprocessor); + } + + virtual void eval(const std::string& expr) { + return _impl->eval(expr); + } + virtual std::string evalAsString(const std::string& expr) { + return _impl->evalAsString(expr); + } + virtual bool evalAsBool(const std::string& expr) { + return _impl->evalAsBool(expr); + } + + virtual void assign(const std::string& location, const std::string& expr) { + return _impl->assign(location, expr); + } + virtual void assign(const std::string& location, const Data& data) { + return _impl->assign(location, data); + } protected: - boost::shared_ptr _impl; + boost::shared_ptr _impl; }; class Factory { @@ -180,11 +244,11 @@ public: static Factory* getInstance(); std::map _dataModels; - std::map _dataModelAliases; + std::map _dataModelAliases; std::map _ioProcessors; - std::map _ioProcessorAliases; + std::map _ioProcessorAliases; std::map _invokers; - std::map _invokerAliases; + std::map _invokerAliases; static std::string pluginPath; diff --git a/src/uscxml/Interpreter.cpp b/src/uscxml/Interpreter.cpp index 9063cef..5000498 100644 --- a/src/uscxml/Interpreter.cpp +++ b/src/uscxml/Interpreter.cpp @@ -29,7 +29,7 @@ const std::string Interpreter::getUUID() { } Interpreter::Interpreter() : Arabica::SAX2DOM::Parser() { - _lastRunOnMainThread = 0; + _lastRunOnMainThread = 0; _thread = NULL; _sendQueue = NULL; _running = false; @@ -58,13 +58,13 @@ Interpreter* Interpreter::fromXML(const std::string& xml) { } Interpreter* Interpreter::fromURI(const std::string& uri) { - URL absUrl(uri); - if (!absUrl.isAbsolute()) { - if (!absUrl.toAbsoluteCwd()) { - LOG(ERROR) << "Given URL is not absolute or does not have file schema"; - return NULL; - } - } + URL absUrl(uri); + if (!absUrl.isAbsolute()) { + if (!absUrl.toAbsoluteCwd()) { + LOG(ERROR) << "Given URL is not absolute or does not have file schema"; + return NULL; + } + } Arabica::SAX::InputSource inputSource(absUrl.asString()); Interpreter* interpreter = fromInputSource(inputSource); @@ -100,15 +100,15 @@ bool Interpreter::toAbsoluteURI(URL& uri) { if (_baseURI.asString().size() > 0) { if (uri.toAbsolute(_baseURI)) - return true; - return false; + return true; + return false; } return false; } void Interpreter::startPrefixMapping(const std::string& prefix, const std::string& uri) { // std::cout << "starting prefix mapping " << prefix << ": " << uri << std::endl; - _nsContext.addNamespaceDeclaration(uri, prefix); + _nsContext.addNamespaceDeclaration(uri, prefix); } Interpreter* Interpreter::fromInputSource(Arabica::SAX::InputSource& source) { @@ -118,7 +118,7 @@ Interpreter* Interpreter::fromInputSource(Arabica::SAX::InputSource interpreter->setErrorHandler(errorHandler); if(!interpreter->parse(source) || !interpreter->Arabica::SAX2DOM::Parser::getDocument().hasChildNodes()) { if(errorHandler.errorsReported()) { - LOG(ERROR) << "could not parse input:"; + LOG(ERROR) << "could not parse input:"; LOG(ERROR) << errorHandler.errors() << std::endl; } else { Arabica::SAX::InputSourceResolver resolver(source, Arabica::default_string_adaptor()); @@ -126,7 +126,7 @@ Interpreter* Interpreter::fromInputSource(Arabica::SAX::InputSource LOG(ERROR) << source.getSystemId() << ": no such file"; } } - delete interpreter; + delete interpreter; return NULL; } else { interpreter->_document = interpreter->Arabica::SAX2DOM::Parser::getDocument(); @@ -142,17 +142,17 @@ void Interpreter::init() { NodeList scxmls = _document.getElementsByTagName("scxml"); if (scxmls.getLength() > 0) { _scxml = (Arabica::DOM::Element)scxmls.item(0); - - // do we have a xmlns attribute? - std::string ns = _document.getDocumentElement().getNamespaceURI(); - if(ns.size() > 0) { - _nsContext.addNamespaceDeclaration(ns, "sc"); - _nsPrefix = "sc:"; - } - // do we have additional namespaces? - - _xpath.setNamespaceContext(_nsContext); - + + // do we have a xmlns attribute? + std::string ns = _document.getDocumentElement().getNamespaceURI(); + if(ns.size() > 0) { + _nsContext.addNamespaceDeclaration(ns, "sc"); + _nsPrefix = "sc:"; + } + // do we have additional namespaces? + + _xpath.setNamespaceContext(_nsContext); + normalize(_document); _name = (HAS_ATTR(_scxml, "name") ? ATTR(_scxml, "name") : getUUID()); } else { @@ -168,12 +168,12 @@ Interpreter::~Interpreter() { _thread->join(); delete(_thread); } - if (_sendQueue) - delete _sendQueue; + if (_sendQueue) + delete _sendQueue; } void Interpreter::start() { - _done = false; + _done = false; _thread = new tthread::thread(Interpreter::run, this); } @@ -182,38 +182,38 @@ void Interpreter::run(void* instance) { } bool Interpreter::runOnMainThread(int fps, bool blocking) { - if (_done) - return false; - - if (fps > 0) { - uint64_t nextRun = _lastRunOnMainThread + (1000 / fps); - if (blocking) { - while(nextRun > tthread::timeStamp()) { - tthread::this_thread::sleep_for(tthread::chrono::milliseconds(nextRun - tthread::timeStamp())); - } - } else { - return true; - } - } - - _lastRunOnMainThread = tthread::timeStamp(); - - tthread::lock_guard lock(_mutex); - std::map::iterator ioProcessorIter = _ioProcessors.begin(); + if (_done) + return false; + + if (fps > 0) { + uint64_t nextRun = _lastRunOnMainThread + (1000 / fps); + if (blocking) { + while(nextRun > tthread::timeStamp()) { + tthread::this_thread::sleep_for(tthread::chrono::milliseconds(nextRun - tthread::timeStamp())); + } + } else { + return true; + } + } + + _lastRunOnMainThread = tthread::timeStamp(); + + tthread::lock_guard lock(_mutex); + std::map::iterator ioProcessorIter = _ioProcessors.begin(); while(ioProcessorIter != _ioProcessors.end()) { ioProcessorIter->second.runOnMainThread(); ioProcessorIter++; } - std::map::iterator invokerIter = _invokers.begin(); + std::map::iterator invokerIter = _invokers.begin(); while(invokerIter != _invokers.end()) { invokerIter->second.runOnMainThread(); invokerIter++; } - - return (_thread != NULL); + + return (_thread != NULL); } - + void Interpreter::waitForStabilization() { tthread::lock_guard lock(_mutex); _stabilized.wait(_mutex); @@ -238,29 +238,29 @@ void Interpreter::interpret() { setupIOProcessors(); _running = true; - _binding = (HAS_ATTR(_scxml, "binding") && boost::iequals(ATTR(_scxml, "binding"), "late") ? LATE : EARLY); - - // @TODO: Reread http://www.w3.org/TR/scxml/#DataBinding - + _binding = (HAS_ATTR(_scxml, "binding") && boost::iequals(ATTR(_scxml, "binding"), "late") ? LATE : EARLY); + + // @TODO: Reread http://www.w3.org/TR/scxml/#DataBinding + if (_dataModel && _binding == EARLY) { - // initialize all data elements + // initialize all data elements NodeSet dataElems = _xpath.evaluate("//" + _nsPrefix + "data", _document).asNodeSet(); for (unsigned int i = 0; i < dataElems.size(); i++) { initializeData(dataElems[i]); } } else if(_dataModel) { - // initialize current data elements + // initialize current data elements NodeSet topDataElems = filterChildElements("data", filterChildElements("datamodel", _scxml)); - // NodeSet topDataElems = _xpath.evaluate("/" + _nsPrefix + "scxml/" + _nsPrefix + "datamodel/" + _nsPrefix + "data", _document).asNodeSet(); + // NodeSet topDataElems = _xpath.evaluate("/" + _nsPrefix + "scxml/" + _nsPrefix + "datamodel/" + _nsPrefix + "data", _document).asNodeSet(); for (unsigned int i = 0; i < topDataElems.size(); i++) { initializeData(topDataElems[i]); } } - // executeGlobalScriptElements + // executeGlobalScriptElements NodeSet globalScriptElems = _xpath.evaluate("/" + _nsPrefix + "scxml/" + _nsPrefix + "script", _document).asNodeSet(); for (unsigned int i = 0; i < globalScriptElems.size(); i++) { - // std::cout << globalScriptElems[i].getFirstChild().getNodeValue() << std::endl; + // std::cout << globalScriptElems[i].getFirstChild().getNodeValue() << std::endl; if (_dataModel) executeContent(globalScriptElems[i]); } @@ -295,21 +295,21 @@ void Interpreter::initializeData(const Arabica::DOM::Node& data) { } try { if (!HAS_ATTR(data, "id")) { - LOG(ERROR) << "Data element has no id!"; + LOG(ERROR) << "Data element has no id!"; return; - } + } if (HAS_ATTR(data, "expr")) { std::string value = ATTR(data, "expr"); _dataModel.assign(ATTR(data, "id"), value); } else if (HAS_ATTR(data, "src")) { - URL srcURL(ATTR(data, "src")); - if (!srcURL.isAbsolute()) - toAbsoluteURI(srcURL); + URL srcURL(ATTR(data, "src")); + if (!srcURL.isAbsolute()) + toAbsoluteURI(srcURL); - std::stringstream ss; - ss << srcURL; - _dataModel.assign(ATTR(data, "id"), ss.str()); + std::stringstream ss; + ss << srcURL; + _dataModel.assign(ATTR(data, "id"), ss.str()); } else if (data.hasChildNodes()) { // search for the text node with the actual script @@ -439,11 +439,11 @@ void Interpreter::mainEventLoop() { _stabilized.notify_all(); } - // whenever we have a stable configuration, run the mainThread hooks with 200fps - while(_externalQueue.isEmpty() && _thread == NULL) { - runOnMainThread(200); - } - + // whenever we have a stable configuration, run the mainThread hooks with 200fps + while(_externalQueue.isEmpty() && _thread == NULL) { + runOnMainThread(200); + } + Event externalEvent = _externalQueue.pop(); if (!_running) exitInterpreter(); @@ -688,7 +688,7 @@ void Interpreter::delayedSend(void* userdata, std::string eventName) { // send to invoker std::string invokeId = sendReq.target.substr(2, sendReq.target.length() - 2); if (INSTANCE->_invokers.find(invokeId) != INSTANCE->_invokers.end()) { - tthread::lock_guard lock(INSTANCE->_mutex); + tthread::lock_guard lock(INSTANCE->_mutex); INSTANCE->_invokers[invokeId].send(sendReq); } else { LOG(ERROR) << "Can not send to invoked component '" << invokeId << "', no such invokeId" << std::endl; @@ -707,7 +707,7 @@ void Interpreter::delayedSend(void* userdata, std::string eventName) { void Interpreter::invoke(const Arabica::DOM::Node& element) { InvokeRequest invokeReq; - invokeReq.dom = element; + invokeReq.dom = element; try { // type @@ -787,13 +787,13 @@ void Interpreter::invoke(const Arabica::DOM::Node& element) { if (contents.size() > 1) LOG(ERROR) << "Only a single content element is allowed for send elements - using first one"; if (contents.size() > 0) { - //std::cout << contents[0] << std::endl; + //std::cout << contents[0] << std::endl; invokeReq.content = contents[0].getNodeValue(); } Invoker invoker(Factory::createInvoker(invokeReq.type, this)); if (invoker) { - tthread::lock_guard lock(_mutex); + tthread::lock_guard lock(_mutex); _invokers[invokeReq.invokeid] = invoker; LOG(INFO) << "Added invoker " << invokeReq.type << " at " << invokeReq.invokeid; invoker.invoke(invokeReq); @@ -909,7 +909,7 @@ Arabica::XPath::NodeSet Interpreter::selectEventlessTransitions() { NodeSet ancestors = getProperAncestors(atomicStates[i], Arabica::DOM::Node()); ancestors.push_back(atomicStates[i]); for (unsigned int j = 0; j < ancestors.size(); j++) { - NodeSet transitions = filterChildElements("transition", ancestors[j]); + NodeSet transitions = filterChildElements("transition", ancestors[j]); for (unsigned int k = 0; k < transitions.size(); k++) { if (!((Arabica::DOM::Element)transitions[k]).hasAttribute("event") && hasConditionMatch(transitions[k])) { enabledTransitions.push_back(transitions[k]); @@ -1248,7 +1248,7 @@ void Interpreter::exitStates(const Arabica::XPath::NodeSet& enabled statesToExit.reverse(); for (int i = 0; i < statesToExit.size(); i++) { - NodeSet histories = filterChildElements("history", statesToExit[i]); + NodeSet histories = filterChildElements("history", statesToExit[i]); for (int j = 0; j < histories.size(); j++) { Arabica::DOM::Element historyElem = (Arabica::DOM::Element)histories[j]; std::string historyType = (historyElem.hasAttribute("type") ? historyElem.getAttribute("type") : "shallow"); @@ -1267,12 +1267,12 @@ void Interpreter::exitStates(const Arabica::XPath::NodeSet& enabled } for (int i = 0; i < statesToExit.size(); i++) { - NodeSet onExits = filterChildElements("onExit", statesToExit[i]); + NodeSet onExits = filterChildElements("onExit", statesToExit[i]); for (int j = 0; j < onExits.size(); j++) { Arabica::DOM::Element onExitElem = (Arabica::DOM::Element)onExits[j]; executeContent(onExitElem); } - NodeSet invokes = filterChildElements("invoke", statesToExit[i]); + NodeSet invokes = filterChildElements("invoke", statesToExit[i]); for (int j = 0; j < invokes.size(); j++) { Arabica::DOM::Element invokeElem = (Arabica::DOM::Element)invokes[j]; cancelInvoke(invokeElem); @@ -1359,11 +1359,11 @@ void Interpreter::enterStates(const Arabica::XPath::NodeSet& enable } statesToEnter.to_document_order(); #if 0 - std::cout << "Entering states: "; - for (int i = 0; i < statesToEnter.size(); i++) { - std::cout << ATTR(statesToEnter[i], "id") << ", "; - } - std::cout << std::endl; + std::cout << "Entering states: "; + for (int i = 0; i < statesToEnter.size(); i++) { + std::cout << ATTR(statesToEnter[i], "id") << ", "; + } + std::cout << std::endl; #endif for (int i = 0; i < statesToEnter.size(); i++) { @@ -1419,7 +1419,7 @@ void Interpreter::enterStates(const Arabica::XPath::NodeSet& enable if (isFinal(stateElem) && parentIsScxmlState(stateElem)) { _running = false; _done = true; - } + } } } @@ -1543,10 +1543,10 @@ NEXT_ANCESTOR: Arabica::DOM::Node Interpreter::getState(const std::string& stateId) { - if (_cachedStates.find(stateId) != _cachedStates.end()) { - return _cachedStates[stateId]; - } - + if (_cachedStates.find(stateId) != _cachedStates.end()) { + return _cachedStates[stateId]; + } + // first try atomic and compund states NodeSet target = _xpath.evaluate("//" + _nsPrefix + "state[@id='" + stateId + "']", _document).asNodeSet(); if (target.size() > 0) @@ -1565,7 +1565,7 @@ Arabica::DOM::Node Interpreter::getState(const std::string& stateId FOUND: if (target.size() > 0) { assert(target.size() == 1); - _cachedStates[stateId] = target[0]; + _cachedStates[stateId] = target[0]; return target[0]; } // return the empty node @@ -1655,23 +1655,23 @@ std::vector Interpreter::tokenizeIdRefs(const std::string& idRefs) } NodeSet Interpreter::filterChildElements(const std::string& tagName, const NodeSet& nodeSet) { - NodeSet filteredChildElems; - for (unsigned int i = 0; i < nodeSet.size(); i++) { - filteredChildElems.push_back(filterChildElements(tagName, nodeSet[i])); - } - return filteredChildElems; + NodeSet filteredChildElems; + for (unsigned int i = 0; i < nodeSet.size(); i++) { + filteredChildElems.push_back(filterChildElements(tagName, nodeSet[i])); + } + return filteredChildElems; } NodeSet Interpreter::filterChildElements(const std::string& tagName, const Node& node) { - NodeSet filteredChildElems; - NodeList childs = node.getChildNodes(); - for (unsigned int i = 0; i < childs.getLength(); i++) { - if (childs.item(i).getNodeType() != Node_base::ELEMENT_NODE || - !boost::iequals(TAGNAME(childs.item(i)), tagName)) - continue; - filteredChildElems.push_back(childs.item(i)); - } - return filteredChildElems; + NodeSet filteredChildElems; + NodeList childs = node.getChildNodes(); + for (unsigned int i = 0; i < childs.getLength(); i++) { + if (childs.item(i).getNodeType() != Node_base::ELEMENT_NODE || + !boost::iequals(TAGNAME(childs.item(i)), tagName)) + continue; + filteredChildElems.push_back(childs.item(i)); + } + return filteredChildElems; } NodeSet Interpreter::getProperAncestors(const Arabica::DOM::Node& s1, @@ -1823,7 +1823,7 @@ bool Interpreter::isCompound(const Arabica::DOM::Node& state) { } void Interpreter::setupIOProcessors() { - tthread::lock_guard lock(_mutex); + tthread::lock_guard lock(_mutex); std::map::iterator ioProcIter = Factory::getInstance()->_ioProcessors.begin(); while(ioProcIter != Factory::getInstance()->_ioProcessors.end()) { _ioProcessors[ioProcIter->first] = Factory::createIOProcessor(ioProcIter->first, this); @@ -1841,7 +1841,7 @@ void Interpreter::setupIOProcessors() { } IOProcessor Interpreter::getIOProcessor(const std::string& type) { - tthread::lock_guard lock(_mutex); + tthread::lock_guard lock(_mutex); if (_ioProcessors.find(type) == _ioProcessors.end()) { LOG(ERROR) << "No ioProcessor known for type " << type; return IOProcessor(); diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h index d5c719b..96667c4 100644 --- a/src/uscxml/Interpreter.h +++ b/src/uscxml/Interpreter.h @@ -28,29 +28,29 @@ namespace uscxml { class NumAttr { public: - NumAttr(const std::string& str) { - size_t valueStart = str.find_first_of("0123456789."); - if (valueStart != std::string::npos) { - size_t valueEnd = str.find_last_of("0123456789."); - if (valueEnd != std::string::npos) { - value = str.substr(valueStart, (valueEnd - valueStart) + 1); - size_t unitStart = str.find_first_not_of(" \t", valueEnd + 1); - if (unitStart != std::string::npos) { - size_t unitEnd = str.find_last_of(" \t"); - if (unitEnd != std::string::npos && unitEnd > unitStart) { - unit = str.substr(unitStart, unitEnd - unitStart); - } else { - unit = str.substr(unitStart, str.length() - unitStart); - } - } - } - } - } - - std::string value; - std::string unit; + NumAttr(const std::string& str) { + size_t valueStart = str.find_first_of("0123456789."); + if (valueStart != std::string::npos) { + size_t valueEnd = str.find_last_of("0123456789."); + if (valueEnd != std::string::npos) { + value = str.substr(valueStart, (valueEnd - valueStart) + 1); + size_t unitStart = str.find_first_not_of(" \t", valueEnd + 1); + if (unitStart != std::string::npos) { + size_t unitEnd = str.find_last_of(" \t"); + if (unitEnd != std::string::npos && unitEnd > unitStart) { + unit = str.substr(unitStart, unitEnd - unitStart); + } else { + unit = str.substr(unitStart, str.length() - unitStart); + } + } + } + } + } + + std::string value; + std::string unit; }; - + class Interpreter : protected Arabica::SAX2DOM::Parser { public: enum Binding { @@ -65,7 +65,7 @@ public: static Interpreter* fromURI(const std::string& uri); static Interpreter* fromInputSource(Arabica::SAX::InputSource& source); - virtual void startPrefixMapping(const std::string& /* prefix */, const std::string& /* uri */); + virtual void startPrefixMapping(const std::string& /* prefix */, const std::string& /* uri */); void start(); static void run(void*); @@ -79,7 +79,7 @@ public: void setBaseURI(std::string baseURI) { _baseURI = URL(baseURI); } - URL getBaseURI() { + URL getBaseURI() { return _baseURI; } @@ -95,7 +95,7 @@ public: std::string getNSPrefix() { return _nsPrefix; } - Arabica::XPath::StandardNamespaceContext& getNSContext() { + Arabica::XPath::StandardNamespaceContext& getNSContext() { return _nsContext; } @@ -122,8 +122,8 @@ public: return _sessionId; } - bool runOnMainThread(int fps, bool blocking = true); - + bool runOnMainThread(int fps, bool blocking = true); + static bool isMember(const Arabica::DOM::Node& node, const Arabica::XPath::NodeSet& set); void dump(); @@ -145,8 +145,8 @@ public: static Arabica::XPath::NodeSet getChildStates(const Arabica::DOM::Node& state); Arabica::XPath::NodeSet getTargetStates(const Arabica::DOM::Node& transition); - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node); - static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagname, const Arabica::DOM::Node& node); + static Arabica::XPath::NodeSet filterChildElements(const std::string& tagName, const Arabica::XPath::NodeSet& nodeSet); static const std::string getUUID(); protected: @@ -163,7 +163,7 @@ protected: tthread::mutex _mutex; tthread::condition_variable _stabilized; - URL _baseURI; + URL _baseURI; Arabica::DOM::Document _document; Arabica::DOM::Element _scxml; Arabica::XPath::XPath _xpath; @@ -185,7 +185,7 @@ protected: Invoker _invoker; static URL toBaseURI(const URL& url); - bool toAbsoluteURI(URL& uri); + bool toAbsoluteURI(URL& uri); void microstep(const Arabica::XPath::NodeSet& enabledTransitions); void exitStates(const Arabica::XPath::NodeSet& enabledTransitions); @@ -223,10 +223,10 @@ protected: bool parentIsScxmlState(Arabica::DOM::Node state); static std::vector tokenizeIdRefs(const std::string& idRefs); - + static boost::uuids::random_generator uuidGen; - long _lastRunOnMainThread; + long _lastRunOnMainThread; std::string _name; std::string _sessionId; @@ -237,8 +237,8 @@ protected: std::map > _sendIds; std::map _invokers; - /// We need to remember to adapt them when the DOM is operated upon - std::map > _cachedStates; + /// We need to remember to adapt them when the DOM is operated upon + std::map > _cachedStates; }; } diff --git a/src/uscxml/Message.h b/src/uscxml/Message.h index 35b27f5..c241b78 100644 --- a/src/uscxml/Message.h +++ b/src/uscxml/Message.h @@ -66,7 +66,7 @@ public: Type type; std::string origin; std::string origintype; - Arabica::DOM::Node dom; + Arabica::DOM::Node dom; std::string sendid; std::string invokeid; diff --git a/src/uscxml/URL.cpp b/src/uscxml/URL.cpp index db128ef..4a8ead7 100644 --- a/src/uscxml/URL.cpp +++ b/src/uscxml/URL.cpp @@ -39,113 +39,116 @@ namespace uscxml { URLImpl::~URLImpl() { - if (_localFile.length() > 0) - remove(_localFile.c_str()); + if (_localFile.length() > 0) + remove(_localFile.c_str()); } const bool URLImpl::toAbsoluteCwd() { - char currPath[FILENAME_MAX]; - if (!getcwd(currPath, sizeof(currPath))) { - return false; - } - currPath[sizeof(currPath) - 1] = '\0'; /* not really required */ - return toAbsolute(std::string("file://" + std::string(currPath) + "/")); + char currPath[FILENAME_MAX]; + if (!getcwd(currPath, sizeof(currPath))) { + return false; + } + currPath[sizeof(currPath) - 1] = '\0'; /* not really required */ + return toAbsolute(std::string("file://" + std::string(currPath) + "/")); } std::string URLImpl::getLocalFilename(const std::string& suffix) { - if (_localFile.length() > 0) - return _localFile; - - if (_uri.scheme().compare("file") == 0) - return _uri.path(); - - // try hard to find a temporary directory - const char* tmpDir = NULL; - if (tmpDir == NULL) - tmpDir = getenv("TMPDIR"); - if (tmpDir == NULL) - tmpDir = getenv("TMP"); - if (tmpDir == NULL) - tmpDir = getenv("TEMP"); - if (tmpDir == NULL) - tmpDir = getenv("USERPROFILE"); - if (tmpDir == NULL) - tmpDir = "/tmp"; - - char* tmpl = (char*)malloc(strlen(tmpDir) + 11 + suffix.length()); - char* writePtr = tmpl; - memcpy(writePtr, tmpDir, strlen(tmpDir)); writePtr += strlen(tmpDir); - memcpy(writePtr, "scxmlXXXXXX", 11); writePtr += 11; - memcpy(writePtr, suffix.c_str(), suffix.length()); writePtr += suffix.length(); - tmpl[writePtr - tmpl] = 0; - + if (_localFile.length() > 0) + return _localFile; + + if (_uri.scheme().compare("file") == 0) + return _uri.path(); + + // try hard to find a temporary directory + const char* tmpDir = NULL; + if (tmpDir == NULL) + tmpDir = getenv("TMPDIR"); + if (tmpDir == NULL) + tmpDir = getenv("TMP"); + if (tmpDir == NULL) + tmpDir = getenv("TEMP"); + if (tmpDir == NULL) + tmpDir = getenv("USERPROFILE"); + if (tmpDir == NULL) + tmpDir = "/tmp"; + + char* tmpl = (char*)malloc(strlen(tmpDir) + 11 + suffix.length()); + char* writePtr = tmpl; + memcpy(writePtr, tmpDir, strlen(tmpDir)); + writePtr += strlen(tmpDir); + memcpy(writePtr, "scxmlXXXXXX", 11); + writePtr += 11; + memcpy(writePtr, suffix.c_str(), suffix.length()); + writePtr += suffix.length(); + tmpl[writePtr - tmpl] = 0; + #ifdef _WIN32 - _mktemp_s(tmpl, strlen(tmpl) + 1); - int fd = _open(tmpl, _O_CREAT, _S_IREAD | _S_IWRITE); + _mktemp_s(tmpl, strlen(tmpl) + 1); + int fd = _open(tmpl, _O_CREAT, _S_IREAD | _S_IWRITE); #else - int fd = mkstemps(tmpl, suffix.length()); + int fd = mkstemps(tmpl, suffix.length()); #endif - if (fd < 0) { - LOG(ERROR) << "mkstemp: " << strerror(errno) << std::endl; - return ""; - } + if (fd < 0) { + LOG(ERROR) << "mkstemp: " << strerror(errno) << std::endl; + return ""; + } #ifdef WIN32 - _close(fd); + _close(fd); #else - close(fd); -#endif - return std::string(tmpl); + close(fd); +#endif + return std::string(tmpl); } boost::shared_ptr URLImpl::toLocalFile(const std::string& content, const std::string& suffix) { - boost::shared_ptr urlImpl = boost::shared_ptr(new URLImpl()); - urlImpl->_localFile = urlImpl->getLocalFilename(suffix); - urlImpl->_uri = std::string("file://") + urlImpl->_localFile; - - std::ofstream file(urlImpl->_localFile.c_str(), std::ios_base::out); - if(file.is_open()) { - file << content; - file.close(); - } else { - return boost::shared_ptr(); - } - - return urlImpl; + boost::shared_ptr urlImpl = boost::shared_ptr(new URLImpl()); + urlImpl->_localFile = urlImpl->getLocalFilename(suffix); + urlImpl->_uri = std::string("file://") + urlImpl->_localFile; + + std::ofstream file(urlImpl->_localFile.c_str(), std::ios_base::out); + if(file.is_open()) { + file << content; + file.close(); + } else { + return boost::shared_ptr(); + } + + return urlImpl; } const bool URLImpl::toAbsolute(const std::string& baseUrl) { - if (_uri.is_absolute()) + if (_uri.is_absolute()) return true; - _uri = Arabica::io::URI(baseUrl, _uri.as_string()); - if (!_uri.is_absolute()) + _uri = Arabica::io::URI(baseUrl, _uri.as_string()); + if (!_uri.is_absolute()) return false; - return true; + return true; } const std::string URLImpl::asLocalFile(const std::string& suffix, bool reload) { - // this is already a local file - if (_uri.scheme().compare("file") == 0) - return _uri.path(); - - if (_localFile.length() > 0 && !reload) - return _localFile; - - if (_localFile.length() > 0) - remove(_localFile.c_str()); - - _localFile = getLocalFilename(suffix); - - std::ofstream file(_localFile.c_str(), std::ios_base::out); - if(file.is_open()) { - file << URL(this->shared_from_this()); - file.close(); - } else { - _localFile = ""; - } - - return _localFile; + // this is already a local file + if (_uri.scheme().compare("file") == 0) + return _uri.path(); + + if (_localFile.length() > 0 && !reload) + return _localFile; + + if (_localFile.length() > 0) + remove(_localFile.c_str()); + + _localFile = getLocalFilename(suffix); + + std::ofstream file(_localFile.c_str(), std::ios_base::out); + if(file.is_open()) { + file << URL(this->shared_from_this()); + file.close(); + } else { + _localFile = ""; + } + + return _localFile; } - + std::ostream & operator<<(std::ostream & stream, const URL& url) { std::string urlString = url.asString(); diff --git a/src/uscxml/URL.h b/src/uscxml/URL.h index 5bcbd27..9ff24c5 100644 --- a/src/uscxml/URL.h +++ b/src/uscxml/URL.h @@ -12,69 +12,112 @@ #include namespace uscxml { - + class URLImpl : public boost::enable_shared_from_this { public: - URLImpl() {} - URLImpl(const std::string uri) : _uri(uri) {} - virtual ~URLImpl(); - const bool toAbsoluteCwd(); - const bool toAbsolute(const std::string& baseUrl); - const std::string asLocalFile(const std::string& suffix, bool reload = false); - - static boost::shared_ptr toLocalFile(const std::string& content, const std::string& suffix); - - const bool isAbsolute() const { return _uri.is_absolute(); } - const std::string scheme() const { return _uri.scheme(); } - const std::string host() const { return _uri.host(); } - const std::string port() const { return _uri.port(); } - const std::string path() const { return _uri.path(); } - const std::string asString() const { return _uri.as_string(); } - + URLImpl() {} + URLImpl(const std::string uri) : _uri(uri) {} + virtual ~URLImpl(); + const bool toAbsoluteCwd(); + const bool toAbsolute(const std::string& baseUrl); + const std::string asLocalFile(const std::string& suffix, bool reload = false); + + static boost::shared_ptr toLocalFile(const std::string& content, const std::string& suffix); + + const bool isAbsolute() const { + return _uri.is_absolute(); + } + const std::string scheme() const { + return _uri.scheme(); + } + const std::string host() const { + return _uri.host(); + } + const std::string port() const { + return _uri.port(); + } + const std::string path() const { + return _uri.path(); + } + const std::string asString() const { + return _uri.as_string(); + } + private: - std::string getLocalFilename(const std::string& suffix); - - Arabica::io::URI _uri; - std::string _localFile; + std::string getLocalFilename(const std::string& suffix); + + Arabica::io::URI _uri; + std::string _localFile; }; class URL { public: - URL() : _impl() {} - URL(const std::string uri) : _impl(new URLImpl(uri)) {} - URL(boost::shared_ptr const impl) : _impl(impl) { } + URL() : _impl() {} + URL(const std::string uri) : _impl(new URLImpl(uri)) {} + URL(boost::shared_ptr const impl) : _impl(impl) { } URL(const URL& other) : _impl(other._impl) { } - virtual ~URL() {}; - - static URL toLocalFile(const std::string& content, const std::string& suffix) { - boost::shared_ptr impl = URLImpl::toLocalFile(content, suffix); - return URL(impl); - } - - operator bool() const { return _impl;} - bool operator< (const URL& other) const { return _impl < other._impl; } - bool operator==(const URL& other) const { return _impl == other._impl; } - bool operator!=(const URL& other) const { return _impl != other._impl; } - URL& operator= (const URL& other) { _impl = other._impl; return *this; } - - const bool toAbsoluteCwd() { return _impl->toAbsoluteCwd(); } - const bool toAbsolute(const std::string& baseUrl) { return _impl->toAbsolute(baseUrl); } - const bool toAbsolute(const URL& baseUrl) { return _impl->toAbsolute(baseUrl.asString()); } - const std::string asLocalFile(const std::string& suffix, bool reload = false) { return _impl->asLocalFile(suffix, reload); } - - const bool isAbsolute() const { return _impl->isAbsolute(); } - const std::string scheme() const { return _impl->scheme(); } - const std::string host() const { return _impl->host(); } - const std::string port() const { return _impl->port(); } - const std::string path() const { return _impl->path(); } - const std::string asString() const { return _impl->asString(); } - - friend std::ostream & operator<<(std::ostream &stream, const URL& p); - + virtual ~URL() {}; + + static URL toLocalFile(const std::string& content, const std::string& suffix) { + boost::shared_ptr impl = URLImpl::toLocalFile(content, suffix); + return URL(impl); + } + + operator bool() const { + return _impl; + } + bool operator< (const URL& other) const { + return _impl < other._impl; + } + bool operator==(const URL& other) const { + return _impl == other._impl; + } + bool operator!=(const URL& other) const { + return _impl != other._impl; + } + URL& operator= (const URL& other) { + _impl = other._impl; + return *this; + } + + const bool toAbsoluteCwd() { + return _impl->toAbsoluteCwd(); + } + const bool toAbsolute(const std::string& baseUrl) { + return _impl->toAbsolute(baseUrl); + } + const bool toAbsolute(const URL& baseUrl) { + return _impl->toAbsolute(baseUrl.asString()); + } + const std::string asLocalFile(const std::string& suffix, bool reload = false) { + return _impl->asLocalFile(suffix, reload); + } + + const bool isAbsolute() const { + return _impl->isAbsolute(); + } + const std::string scheme() const { + return _impl->scheme(); + } + const std::string host() const { + return _impl->host(); + } + const std::string port() const { + return _impl->port(); + } + const std::string path() const { + return _impl->path(); + } + const std::string asString() const { + return _impl->asString(); + } + + friend std::ostream & operator<<(std::ostream &stream, const URL& p); + protected: - boost::shared_ptr _impl; + boost::shared_ptr _impl; }; - + enum fcurl_type_e { CFTYPE_NONE=0, CFTYPE_FILE=1, diff --git a/src/uscxml/concurrency/BlockingQueue.h b/src/uscxml/concurrency/BlockingQueue.h index 81d082d..3d45720 100644 --- a/src/uscxml/concurrency/BlockingQueue.h +++ b/src/uscxml/concurrency/BlockingQueue.h @@ -30,11 +30,11 @@ public: return ret; } - bool isEmpty() { - tthread::lock_guard lock(_mutex); - return _queue.empty(); - } - + bool isEmpty() { + tthread::lock_guard lock(_mutex); + return _queue.empty(); + } + tthread::mutex _mutex; tthread::condition_variable _cond; std::list _queue; diff --git a/src/uscxml/concurrency/eventqueue/DelayedEventQueue.cpp b/src/uscxml/concurrency/eventqueue/DelayedEventQueue.cpp index 5f2611f..4390927 100644 --- a/src/uscxml/concurrency/eventqueue/DelayedEventQueue.cpp +++ b/src/uscxml/concurrency/eventqueue/DelayedEventQueue.cpp @@ -86,10 +86,10 @@ void DelayedEventQueue::timerCallback(evutil_socket_t fd, short what, void *arg) std::string eventId = data->eventId; // copy eventId data->callback(data->userData, eventId); - if (!data->persist) { - event_free(data->event); - data->eventQueue->_callbackData.erase(data->eventId); - } + if (!data->persist) { + event_free(data->event); + data->eventQueue->_callbackData.erase(data->eventId); + } } } \ No newline at end of file diff --git a/src/uscxml/concurrency/tinythread.cpp b/src/uscxml/concurrency/tinythread.cpp index 3733804..66e73c1 100644 --- a/src/uscxml/concurrency/tinythread.cpp +++ b/src/uscxml/concurrency/tinythread.cpp @@ -34,19 +34,19 @@ freely, subject to the following restrictions: namespace tthread { unsigned long long int timeStamp() { - unsigned long long int time = 0; + unsigned long long int time = 0; #ifdef WIN32 - FILETIME tv; - GetSystemTimeAsFileTime(&tv); - time = (((unsigned long long int) tv.dwHighDateTime) << 32) + tv.dwLowDateTime; - time /= 10000; + FILETIME tv; + GetSystemTimeAsFileTime(&tv); + time = (((unsigned long long int) tv.dwHighDateTime) << 32) + tv.dwLowDateTime; + time /= 10000; #else - struct timeval tv; - gettimeofday(&tv, NULL); - time += tv.tv_sec * 1000; - time += tv.tv_usec / 1000; + struct timeval tv; + gettimeofday(&tv, NULL); + time += tv.tv_sec * 1000; + time += tv.tv_usec / 1000; #endif - return time; + return time; } //------------------------------------------------------------------------------ diff --git a/src/uscxml/concurrency/tinythread.h b/src/uscxml/concurrency/tinythread.h index e5b2e4e..d824067 100644 --- a/src/uscxml/concurrency/tinythread.h +++ b/src/uscxml/concurrency/tinythread.h @@ -153,7 +153,7 @@ freely, subject to the following restrictions: namespace tthread { unsigned long long int timeStamp(); - + /// Mutex class. /// This is a mutual exclusion object for synchronizing access to shared /// memory areas for several threads. The mutex is non-recursive (i.e. a diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp index 0c82f6b..303b7d1 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp @@ -27,10 +27,10 @@ boost::shared_ptr JSCDataModel::create(Interpreter* interpreter) dm->setName(interpreter->getName()); dm->setSessionId(interpreter->getSessionId()); dm->eval("_ioprocessors = {};"); - dm->_ctx = JSGlobalContextCreate(NULL); + dm->_ctx = JSGlobalContextCreate(NULL); + + JSObjectRef globalObject = JSContextGetGlobalObject(dm->_ctx); - JSObjectRef globalObject = JSContextGetGlobalObject(dm->_ctx); - return dm; } diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h index de82ee7..c223d4f 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.h @@ -58,7 +58,7 @@ protected: std::string _name; Event _event; - JSContextRef _ctx; + JSContextRef _ctx; }; #ifdef BUILD_AS_PLUGINS diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.cpp index 27546d0..f42c9bd 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.cpp @@ -3,7 +3,7 @@ namespace uscxml { JSCDOM::JSCDOM() { - -} + +} } \ No newline at end of file diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.h b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.h index 0986408..248d057 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.h +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCDOM.h @@ -17,8 +17,8 @@ public: JSCDOM(); virtual ~JSCDOM() { }; - Interpreter* interpreter; - Arabica::XPath::XPath* xpath; + Interpreter* interpreter; + Arabica::XPath::XPath* xpath; }; } diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.cpp index 508a356..7d38f9f 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.cpp @@ -5,56 +5,56 @@ namespace uscxml { using namespace Arabica::DOM; - JSStaticValue JSCNode::staticValues[] = { - { "nodeName", nodeNameAttrGetter, nodeValueAttrSetter, kJSPropertyAttributeDontDelete }, - { "nodeValue", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "nodeType", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "parentNode", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "childNodes", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "firstChild", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "lastChild", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "previousSibling", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "nextSibling", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "attributes", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "ownerDocument", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "namespaceURI", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "prefix", nodeValueAttrGetter, prefixAttrSetter, kJSPropertyAttributeDontDelete }, - { "localName", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "baseURI", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "textContent", nodeValueAttrGetter, textContentAttrSetter, kJSPropertyAttributeDontDelete }, - { "parentElement", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "ELEMENT_NODE", ELEMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "ATTRIBUTE_NODE", ATTRIBUTE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "TEXT_NODE", TEXT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "CDATA_SECTION_NODE", CDATA_SECTION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "ENTITY_REFERENCE_NODE", ENTITY_REFERENCE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "ENTITY_NODE", ENTITY_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "PROCESSING_INSTRUCTION_NODE", PROCESSING_INSTRUCTION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "COMMENT_NODE", COMMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "DOCUMENT_NODE", DOCUMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "DOCUMENT_TYPE_NODE", DOCUMENT_TYPE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "DOCUMENT_FRAGMENT_NODE", DOCUMENT_FRAGMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "NOTATION_NODE", NOTATION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { "MAX_TYPE", MAX_TYPEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, - { 0, 0, 0, 0 } - }; +JSStaticValue JSCNode::staticValues[] = { + { "nodeName", nodeNameAttrGetter, nodeValueAttrSetter, kJSPropertyAttributeDontDelete }, + { "nodeValue", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "nodeType", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "parentNode", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "childNodes", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "firstChild", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "lastChild", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "previousSibling", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "nextSibling", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "attributes", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "ownerDocument", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "namespaceURI", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "prefix", nodeValueAttrGetter, prefixAttrSetter, kJSPropertyAttributeDontDelete }, + { "localName", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "baseURI", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "textContent", nodeValueAttrGetter, textContentAttrSetter, kJSPropertyAttributeDontDelete }, + { "parentElement", nodeValueAttrGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "ELEMENT_NODE", ELEMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "ATTRIBUTE_NODE", ATTRIBUTE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "TEXT_NODE", TEXT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "CDATA_SECTION_NODE", CDATA_SECTION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "ENTITY_REFERENCE_NODE", ENTITY_REFERENCE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "ENTITY_NODE", ENTITY_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "PROCESSING_INSTRUCTION_NODE", PROCESSING_INSTRUCTION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "COMMENT_NODE", COMMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "DOCUMENT_NODE", DOCUMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "DOCUMENT_TYPE_NODE", DOCUMENT_TYPE_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "DOCUMENT_FRAGMENT_NODE", DOCUMENT_FRAGMENT_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "NOTATION_NODE", NOTATION_NODEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { "MAX_TYPE", MAX_TYPEConstGetter, NULL, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly }, + { 0, 0, 0, 0 } +}; + +JSStaticFunction JSCNode::staticFunctions[] = { + { "insertBefore", insertBeforeCallback, kJSPropertyAttributeDontDelete }, + { "replaceChild", replaceChildCallback, kJSPropertyAttributeDontDelete }, + { "removeChild", removeChildCallback, kJSPropertyAttributeDontDelete }, + { "appendChild", appendChildCallback, kJSPropertyAttributeDontDelete }, + { "hasChildNodes", hasChildNodesCallback, kJSPropertyAttributeDontDelete }, + { "cloneNode", cloneNodeCallback, kJSPropertyAttributeDontDelete }, + { "normalize", normalizeCallback, kJSPropertyAttributeDontDelete }, + { "isSupported", isSupportedCallback, kJSPropertyAttributeDontDelete }, + { "hasAttributes", hasAttributesCallback, kJSPropertyAttributeDontDelete }, + { "lookupPrefix", lookupPrefixCallback, kJSPropertyAttributeDontDelete }, + { "isDefaultNamespace", isDefaultNamespaceCallback, kJSPropertyAttributeDontDelete }, + { "lookupNamespaceURI", lookupNamespaceURICallback, kJSPropertyAttributeDontDelete }, + { "addEventListener", addEventListenerCallback, kJSPropertyAttributeDontDelete }, + { "removeEventListener", removeEventListenerCallback, kJSPropertyAttributeDontDelete }, + { 0, 0, 0 } +}; - JSStaticFunction JSCNode::staticFunctions[] = { - { "insertBefore", insertBeforeCallback, kJSPropertyAttributeDontDelete }, - { "replaceChild", replaceChildCallback, kJSPropertyAttributeDontDelete }, - { "removeChild", removeChildCallback, kJSPropertyAttributeDontDelete }, - { "appendChild", appendChildCallback, kJSPropertyAttributeDontDelete }, - { "hasChildNodes", hasChildNodesCallback, kJSPropertyAttributeDontDelete }, - { "cloneNode", cloneNodeCallback, kJSPropertyAttributeDontDelete }, - { "normalize", normalizeCallback, kJSPropertyAttributeDontDelete }, - { "isSupported", isSupportedCallback, kJSPropertyAttributeDontDelete }, - { "hasAttributes", hasAttributesCallback, kJSPropertyAttributeDontDelete }, - { "lookupPrefix", lookupPrefixCallback, kJSPropertyAttributeDontDelete }, - { "isDefaultNamespace", isDefaultNamespaceCallback, kJSPropertyAttributeDontDelete }, - { "lookupNamespaceURI", lookupNamespaceURICallback, kJSPropertyAttributeDontDelete }, - { "addEventListener", addEventListenerCallback, kJSPropertyAttributeDontDelete }, - { "removeEventListener", removeEventListenerCallback, kJSPropertyAttributeDontDelete }, - { 0, 0, 0 } - }; - } \ No newline at end of file diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.h b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.h index 225e8a3..677a63b 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.h +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/dom/JSCNode.h @@ -5,79 +5,217 @@ namespace uscxml { - class JSCNode { - public: - static JSValueRef nodeNameAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef nodeValueAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef nodeTypeAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef parentNodeAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef childNodesAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef firstChildAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef lastChildAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef previousSiblingAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef nextSiblingAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef attributesAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef ownerDocumentAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef namespaceURIAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef prefixAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef localNameAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef baseURIAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef textContentAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef parentElementAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } +class JSCNode { +public: + static JSValueRef nodeNameAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef nodeValueAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef nodeTypeAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef parentNodeAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef childNodesAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef firstChildAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef lastChildAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef previousSiblingAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef nextSiblingAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef attributesAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef ownerDocumentAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef namespaceURIAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef prefixAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef localNameAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef baseURIAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef textContentAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef parentElementAttrGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } - static bool nodeValueAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { return false; } - static bool prefixAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { return false; } - static bool textContentAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { return false; } + static bool nodeValueAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { + return false; + } + static bool prefixAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { + return false; + } + static bool textContentAttrSetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef value, JSValueRef* exception) { + return false; + } - static JSValueRef insertBeforeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef replaceChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef removeChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef appendChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef hasChildNodesCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef cloneNodeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef normalizeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef isSupportedCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef hasAttributesCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef lookupPrefixCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef isDefaultNamespaceCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef lookupNamespaceURICallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef addEventListenerCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } - static JSValueRef removeEventListenerCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { assert(false); return JSValueMakeUndefined(ctx); } + static JSValueRef insertBeforeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef replaceChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef removeChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef appendChildCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef hasChildNodesCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef cloneNodeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef normalizeCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef isSupportedCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef hasAttributesCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef lookupPrefixCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef isDefaultNamespaceCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef lookupNamespaceURICallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef addEventListenerCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } + static JSValueRef removeEventListenerCallback(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObj, size_t argumentCount, const JSValueRef* arguments, JSValueRef* exception) { + assert(false); + return JSValueMakeUndefined(ctx); + } - static JSValueRef ELEMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ELEMENT_NODE); } - static JSValueRef ATTRIBUTE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ATTRIBUTE_NODE); } - static JSValueRef TEXT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::TEXT_NODE); } - static JSValueRef CDATA_SECTION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::CDATA_SECTION_NODE); } - static JSValueRef ENTITY_REFERENCE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ENTITY_REFERENCE_NODE); } - static JSValueRef ENTITY_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ENTITY_NODE); } - static JSValueRef PROCESSING_INSTRUCTION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::PROCESSING_INSTRUCTION_NODE); } - static JSValueRef COMMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::COMMENT_NODE); } - static JSValueRef DOCUMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_NODE); } - static JSValueRef DOCUMENT_TYPE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_TYPE_NODE); } - static JSValueRef DOCUMENT_FRAGMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_FRAGMENT_NODE); } - static JSValueRef NOTATION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::NOTATION_NODE); } - static JSValueRef MAX_TYPEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { assert(false); return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::MAX_TYPE); } - - JSC_DESTRUCTOR(Arabica::DOM::Node); - - static JSStaticValue staticValues[]; - static JSStaticFunction staticFunctions[]; + static JSValueRef ELEMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ELEMENT_NODE); + } + static JSValueRef ATTRIBUTE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ATTRIBUTE_NODE); + } + static JSValueRef TEXT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::TEXT_NODE); + } + static JSValueRef CDATA_SECTION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::CDATA_SECTION_NODE); + } + static JSValueRef ENTITY_REFERENCE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ENTITY_REFERENCE_NODE); + } + static JSValueRef ENTITY_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::ENTITY_NODE); + } + static JSValueRef PROCESSING_INSTRUCTION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::PROCESSING_INSTRUCTION_NODE); + } + static JSValueRef COMMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::COMMENT_NODE); + } + static JSValueRef DOCUMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_NODE); + } + static JSValueRef DOCUMENT_TYPE_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_TYPE_NODE); + } + static JSValueRef DOCUMENT_FRAGMENT_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::DOCUMENT_FRAGMENT_NODE); + } + static JSValueRef NOTATION_NODEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::NOTATION_NODE); + } + static JSValueRef MAX_TYPEConstGetter(JSContextRef ctx, JSObjectRef thisObj, JSStringRef propertyName, JSValueRef* exception) { + assert(false); + return JSValueMakeNumber(ctx, Arabica::DOM::Node_base::MAX_TYPE); + } - static JSClassRef Tmpl; - static JSClassRef getTmpl() { - if (Tmpl == NULL) { - JSClassDefinition classDef = kJSClassDefinitionEmpty; - classDef.staticValues = staticValues; - classDef.staticFunctions = staticFunctions; - classDef.finalize = jsDestructor; - - Tmpl = JSClassCreate(&classDef); - JSClassRetain(Tmpl); - } - return Tmpl; + JSC_DESTRUCTOR(Arabica::DOM::Node); + + static JSStaticValue staticValues[]; + static JSStaticFunction staticFunctions[]; + + static JSClassRef Tmpl; + static JSClassRef getTmpl() { + if (Tmpl == NULL) { + JSClassDefinition classDef = kJSClassDefinitionEmpty; + classDef.staticValues = staticValues; + classDef.staticFunctions = staticFunctions; + classDef.finalize = jsDestructor; + + Tmpl = JSClassCreate(&classDef); + JSClassRetain(Tmpl); } + return Tmpl; + } - }; +}; } diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp index f5ff4fd..ac1fbbd 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp @@ -29,36 +29,36 @@ boost::shared_ptr V8DataModel::create(Interpreter* interpreter) { v8::Locker locker; v8::HandleScope scope; - Arabica::DOM::V8DOM* dom = new Arabica::DOM::V8DOM(); + Arabica::DOM::V8DOM* dom = new Arabica::DOM::V8DOM(); // dom->interpreter = interpreter; - dom->xpath = new Arabica::XPath::XPath(); - dom->xpath->setNamespaceContext(interpreter->getNSContext()); - + dom->xpath = new Arabica::XPath::XPath(); + dom->xpath->setNamespaceContext(interpreter->getNSContext()); + // see http://stackoverflow.com/questions/3171418/v8-functiontemplate-class-instance - // some free functions + // some free functions v8::Handle global = v8::ObjectTemplate::New(); global->Set(v8::String::New("In"), v8::FunctionTemplate::New(jsIn, v8::External::New(reinterpret_cast(dm.get()))), v8::ReadOnly); global->Set(v8::String::New("print"), v8::FunctionTemplate::New(jsPrint, v8::External::New(reinterpret_cast(dm.get()))), v8::ReadOnly); - v8::Persistent context = v8::Context::New(0, global); - v8::Context::Scope contextScope(context); - - // instantiate the document function - v8::Handle docCtor = Arabica::DOM::V8Document::getTmpl()->GetFunction(); - v8::Handle docObj = docCtor->NewInstance(); - - Arabica::DOM::V8Document::V8DocumentPrivate* privData = new Arabica::DOM::V8Document::V8DocumentPrivate(); - privData->arabicaThis = new Arabica::DOM::Document(interpreter->getDocument()); - privData->dom = dom; - docObj->SetInternalField(0, Arabica::DOM::V8DOM::toExternal(privData)); - - context->Global()->Set(v8::String::New("document"), docObj); - + v8::Persistent context = v8::Context::New(0, global); + v8::Context::Scope contextScope(context); + + // instantiate the document function + v8::Handle docCtor = Arabica::DOM::V8Document::getTmpl()->GetFunction(); + v8::Handle docObj = docCtor->NewInstance(); + + Arabica::DOM::V8Document::V8DocumentPrivate* privData = new Arabica::DOM::V8Document::V8DocumentPrivate(); + privData->arabicaThis = new Arabica::DOM::Document(interpreter->getDocument()); + privData->dom = dom; + docObj->SetInternalField(0, Arabica::DOM::V8DOM::toExternal(privData)); + + context->Global()->Set(v8::String::New("document"), docObj); + dm->_contexts.push_back(context); - - // instantiate objects - we have to have a context for that! - + + // instantiate objects - we have to have a context for that! + dm->setName(interpreter->getName()); dm->setSessionId(interpreter->getSessionId()); dm->eval("_ioprocessors = {};"); diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.cpp index d1c2f8f..dd11694 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.cpp @@ -5,57 +5,57 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Attr::Tmpl; +v8::Persistent V8Attr::Tmpl; - v8::Handle V8Attr::nameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Attr::nameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getName().c_str()); - } + return v8::String::New(privData->arabicaThis->getName().c_str()); +} - v8::Handle V8Attr::specifiedAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Attr::specifiedAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Boolean::New(privData->arabicaThis->getSpecified()); - } + return v8::Boolean::New(privData->arabicaThis->getSpecified()); +} - v8::Handle V8Attr::valueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Attr::valueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getValue().c_str()); - } + return v8::String::New(privData->arabicaThis->getValue().c_str()); +} - void V8Attr::valueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localValue(value); - privData->arabicaThis->setValue(*localValue); - } +void V8Attr::valueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localValue(value); + privData->arabicaThis->setValue(*localValue); +} - v8::Handle V8Attr::ownerElementAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Element* arbaicaRet = new Arabica::DOM::Element(privData->arabicaThis->getOwnerElement()); +v8::Handle V8Attr::ownerElementAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8AttrPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Element* arbaicaRet = new Arabica::DOM::Element(privData->arabicaThis->getOwnerElement()); - v8::Handle arbaicaRetCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); + v8::Handle arbaicaRetCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Element::jsDestructor); - return arbaicaRetObj; + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - } - bool V8Attr::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Element::jsDestructor); + return arbaicaRetObj; -} -} +} +bool V8Attr::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} + +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.h index 2b9a6e6..5cd4831 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Attr.h @@ -31,48 +31,48 @@ namespace DOM { class V8Attr { public: - struct V8AttrPrivate { - V8DOM* dom; - Arabica::DOM::Attr* arabicaThis; - }; - - V8_DESTRUCTOR(V8AttrPrivate); - static bool hasInstance(v8::Handle); - - - static v8::Handle nameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle specifiedAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle valueAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static void valueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); - static v8::Handle ownerElementAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Attr")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("name"), V8Attr::nameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("specified"), V8Attr::specifiedAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("value"), V8Attr::valueAttrGetter, V8Attr::valueAttrSetter, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("ownerElement"), V8Attr::ownerElementAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - - - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8AttrPrivate { + V8DOM* dom; + Arabica::DOM::Attr* arabicaThis; + }; + + V8_DESTRUCTOR(V8AttrPrivate); + static bool hasInstance(v8::Handle); + + + static v8::Handle nameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle specifiedAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle valueAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static void valueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); + static v8::Handle ownerElementAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Attr")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("name"), V8Attr::nameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("specified"), V8Attr::specifiedAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("value"), V8Attr::valueAttrGetter, V8Attr::valueAttrSetter, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("ownerElement"), V8Attr::ownerElementAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + + + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.cpp index 90495f4..a9e5ac9 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.cpp @@ -4,11 +4,11 @@ namespace Arabica { namespace DOM { - v8::Persistent V8CDATASection::Tmpl; +v8::Persistent V8CDATASection::Tmpl; - bool V8CDATASection::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8CDATASection::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.h index 0e2e253..d2543c1 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CDATASection.h @@ -31,35 +31,35 @@ namespace DOM { class V8CDATASection { public: - struct V8CDATASectionPrivate { - V8DOM* dom; - Arabica::DOM::CDATASection* arabicaThis; - }; + struct V8CDATASectionPrivate { + V8DOM* dom; + Arabica::DOM::CDATASection* arabicaThis; + }; - V8_DESTRUCTOR(V8CDATASectionPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8CDATASectionPrivate); + static bool hasInstance(v8::Handle); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("CDATASection")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("CDATASection")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - tmpl->Inherit(V8Text::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Text::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.cpp index 7e1d9a3..13c582a 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.cpp @@ -4,102 +4,102 @@ namespace Arabica { namespace DOM { - v8::Persistent V8CharacterData::Tmpl; +v8::Persistent V8CharacterData::Tmpl; - v8::Handle V8CharacterData::dataAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8CharacterData::dataAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getData().c_str()); - } + return v8::String::New(privData->arabicaThis->getData().c_str()); +} - void V8CharacterData::dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localData(value); - privData->arabicaThis->setData(*localData); - } +void V8CharacterData::dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localData(value); + privData->arabicaThis->setData(*localData); +} - v8::Handle V8CharacterData::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8CharacterData::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Integer::New(privData->arabicaThis->getLength()); - } - v8::Handle V8CharacterData::substringDataCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in substringData"); + return v8::Integer::New(privData->arabicaThis->getLength()); +} +v8::Handle V8CharacterData::substringDataCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in substringData"); - v8::Local self = args.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); - unsigned long localCount = args[1]->ToNumber()->Uint32Value(); + v8::Local self = args.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); + unsigned long localCount = args[1]->ToNumber()->Uint32Value(); - std::string retVal = privData->arabicaThis->substringData(localOffset, localCount); + std::string retVal = privData->arabicaThis->substringData(localOffset, localCount); - return v8::String::New(retVal.c_str()); - } + return v8::String::New(retVal.c_str()); +} - v8::Handle V8CharacterData::appendDataCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in appendData"); +v8::Handle V8CharacterData::appendDataCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in appendData"); - v8::Local self = args.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localArg(args[0]); + v8::Local self = args.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localArg(args[0]); - privData->arabicaThis->appendData(*localArg); + privData->arabicaThis->appendData(*localArg); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8CharacterData::insertDataCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in insertData"); +v8::Handle V8CharacterData::insertDataCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in insertData"); - v8::Local self = args.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); - v8::String::AsciiValue localArg(args[1]); + v8::Local self = args.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); + v8::String::AsciiValue localArg(args[1]); - privData->arabicaThis->insertData(localOffset, *localArg); + privData->arabicaThis->insertData(localOffset, *localArg); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8CharacterData::deleteDataCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in deleteData"); +v8::Handle V8CharacterData::deleteDataCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in deleteData"); - v8::Local self = args.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); - unsigned long localCount = args[1]->ToNumber()->Uint32Value(); + v8::Local self = args.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); + unsigned long localCount = args[1]->ToNumber()->Uint32Value(); - privData->arabicaThis->deleteData(localOffset, localCount); + privData->arabicaThis->deleteData(localOffset, localCount); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8CharacterData::replaceDataCallback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in replaceData"); +v8::Handle V8CharacterData::replaceDataCallback(const v8::Arguments& args) { + if (args.Length() < 3) + throw V8Exception("Wrong number of arguments in replaceData"); - v8::Local self = args.Holder(); - V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); - unsigned long localCount = args[1]->ToNumber()->Uint32Value(); - v8::String::AsciiValue localArg(args[2]); + v8::Local self = args.Holder(); + struct V8CharacterDataPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); + unsigned long localCount = args[1]->ToNumber()->Uint32Value(); + v8::String::AsciiValue localArg(args[2]); - privData->arabicaThis->replaceData(localOffset, localCount, *localArg); + privData->arabicaThis->replaceData(localOffset, localCount, *localArg); - return v8::Undefined(); - } + return v8::Undefined(); +} - bool V8CharacterData::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8CharacterData::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.h index 0e0f0c1..d9808a3 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8CharacterData.h @@ -31,57 +31,57 @@ namespace DOM { class V8CharacterData { public: - struct V8CharacterDataPrivate { - V8DOM* dom; - Arabica::DOM::CharacterData* arabicaThis; - }; - - V8_DESTRUCTOR(V8CharacterDataPrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle substringDataCallback(const v8::Arguments&); - static v8::Handle appendDataCallback(const v8::Arguments&); - static v8::Handle insertDataCallback(const v8::Arguments&); - static v8::Handle deleteDataCallback(const v8::Arguments&); - static v8::Handle replaceDataCallback(const v8::Arguments&); - - static v8::Handle dataAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static void dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); - static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("CharacterData")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("data"), V8CharacterData::dataAttrGetter, V8CharacterData::dataAttrSetter, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("length"), V8CharacterData::lengthAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("substringData"), - v8::FunctionTemplate::New(V8CharacterData::substringDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("appendData"), - v8::FunctionTemplate::New(V8CharacterData::appendDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("insertData"), - v8::FunctionTemplate::New(V8CharacterData::insertDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("deleteData"), - v8::FunctionTemplate::New(V8CharacterData::deleteDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("replaceData"), - v8::FunctionTemplate::New(V8CharacterData::replaceDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8CharacterDataPrivate { + V8DOM* dom; + Arabica::DOM::CharacterData* arabicaThis; + }; + + V8_DESTRUCTOR(V8CharacterDataPrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle substringDataCallback(const v8::Arguments&); + static v8::Handle appendDataCallback(const v8::Arguments&); + static v8::Handle insertDataCallback(const v8::Arguments&); + static v8::Handle deleteDataCallback(const v8::Arguments&); + static v8::Handle replaceDataCallback(const v8::Arguments&); + + static v8::Handle dataAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static void dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); + static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("CharacterData")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("data"), V8CharacterData::dataAttrGetter, V8CharacterData::dataAttrSetter, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("length"), V8CharacterData::lengthAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("substringData"), + v8::FunctionTemplate::New(V8CharacterData::substringDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("appendData"), + v8::FunctionTemplate::New(V8CharacterData::appendDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("insertData"), + v8::FunctionTemplate::New(V8CharacterData::insertDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("deleteData"), + v8::FunctionTemplate::New(V8CharacterData::deleteDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("replaceData"), + v8::FunctionTemplate::New(V8CharacterData::replaceDataCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.cpp index e470a70..f754ea7 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.cpp @@ -4,11 +4,11 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Comment::Tmpl; +v8::Persistent V8Comment::Tmpl; - bool V8Comment::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8Comment::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.h index 0a0e379..8ff626e 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Comment.h @@ -31,35 +31,35 @@ namespace DOM { class V8Comment { public: - struct V8CommentPrivate { - V8DOM* dom; - Arabica::DOM::Comment* arabicaThis; - }; + struct V8CommentPrivate { + V8DOM* dom; + Arabica::DOM::Comment* arabicaThis; + }; - V8_DESTRUCTOR(V8CommentPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8CommentPrivate); + static bool hasInstance(v8::Handle); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Comment")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Comment")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - tmpl->Inherit(V8CharacterData::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8CharacterData::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.cpp index ce003d9..4562fe3 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.cpp @@ -4,8 +4,8 @@ namespace Arabica { namespace DOM { V8DOM::V8DOM() { - -} + +} } } \ No newline at end of file diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.h index 45b2e6a..94400e5 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOM.h @@ -24,53 +24,48 @@ public: V8DOM(); virtual ~V8DOM() { }; - template - static T* toClassPtr(v8::Local data) { - if(data.IsEmpty()) - return NULL; - else if(!data->IsExternal()) - return NULL; - else - return static_cast(v8::External::Unwrap(data)); - return NULL; - } - static v8::Local toExternal(void* pointer) { - v8::HandleScope scope; - return scope.Close(v8::External::New(pointer)); + template + static T* toClassPtr(v8::Local data) { + if(data.IsEmpty()) + return NULL; + else if(!data->IsExternal()) + return NULL; + else + return static_cast(v8::External::Unwrap(data)); + return NULL; + } + static v8::Local toExternal(void* pointer) { + v8::HandleScope scope; + return scope.Close(v8::External::New(pointer)); } - Arabica::XPath::XPath* xpath; + Arabica::XPath::XPath* xpath; }; -class V8Exception : public std::runtime_error -{ +class V8Exception : public std::runtime_error { public: - - V8Exception(const std::string& reason) : - std::runtime_error("DOMException") - { - } // V8Exception - - V8Exception(const V8Exception& rhs) : - std::runtime_error(rhs), - reason_(rhs.reason_) - { - } // DOMException - - virtual ~V8Exception() throw() - { - } // DOMBadCast - - virtual const char* what() const throw() - { - return reason_.c_str(); - } // what - + + V8Exception(const std::string& reason) : + std::runtime_error("DOMException") { + } // V8Exception + + V8Exception(const V8Exception& rhs) : + std::runtime_error(rhs), + reason_(rhs.reason_) { + } // DOMException + + virtual ~V8Exception() throw() { + } // DOMBadCast + + virtual const char* what() const throw() { + return reason_.c_str(); + } // what + private: - DOMBadCast& operator=(const DOMBadCast&); - bool operator==(const DOMBadCast&) const; - - std::string reason_; + DOMBadCast& operator=(const DOMBadCast&); + bool operator==(const DOMBadCast&) const; + + std::string reason_; }; // class DOMException } diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.cpp index 07b51e2..6d26cee 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.cpp @@ -5,77 +5,77 @@ namespace Arabica { namespace DOM { - v8::Persistent V8DOMImplementation::Tmpl; +v8::Persistent V8DOMImplementation::Tmpl; - v8::Handle V8DOMImplementation::hasFeatureCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in hasFeature"); +v8::Handle V8DOMImplementation::hasFeatureCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in hasFeature"); - v8::Local self = args.Holder(); - V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localFeature(args[0]); - v8::String::AsciiValue localVersion(args[1]); + v8::Local self = args.Holder(); + struct V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localFeature(args[0]); + v8::String::AsciiValue localVersion(args[1]); - bool retVal = privData->arabicaThis->hasFeature(*localFeature, *localVersion); + bool retVal = privData->arabicaThis->hasFeature(*localFeature, *localVersion); - return v8::Boolean::New(retVal); - } + return v8::Boolean::New(retVal); +} - v8::Handle V8DOMImplementation::createDocumentTypeCallback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in createDocumentType"); +v8::Handle V8DOMImplementation::createDocumentTypeCallback(const v8::Arguments& args) { + if (args.Length() < 3) + throw V8Exception("Wrong number of arguments in createDocumentType"); - v8::Local self = args.Holder(); - V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localQualifiedName(args[0]); - v8::String::AsciiValue localPublicId(args[1]); - v8::String::AsciiValue localSystemId(args[2]); + v8::Local self = args.Holder(); + struct V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localQualifiedName(args[0]); + v8::String::AsciiValue localPublicId(args[1]); + v8::String::AsciiValue localSystemId(args[2]); - Arabica::DOM::DocumentType* retVal = new Arabica::DOM::DocumentType(privData->arabicaThis->createDocumentType(*localQualifiedName, *localPublicId, *localSystemId)); - v8::Handle retCtor = V8DocumentType::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::DocumentType* retVal = new Arabica::DOM::DocumentType(privData->arabicaThis->createDocumentType(*localQualifiedName, *localPublicId, *localSystemId)); + v8::Handle retCtor = V8DocumentType::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8DocumentType::V8DocumentTypePrivate* retPrivData = new V8DocumentType::V8DocumentTypePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8DocumentType::V8DocumentTypePrivate* retPrivData = new V8DocumentType::V8DocumentTypePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8DocumentType::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8DocumentType::jsDestructor); + return retObj; - } +} - v8::Handle V8DOMImplementation::createDocumentCallback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in createDocument"); - if (!(V8DocumentType::hasInstance(args[2]))) - throw V8Exception("Parameter mismatch while calling createDocument"); +v8::Handle V8DOMImplementation::createDocumentCallback(const v8::Arguments& args) { + if (args.Length() < 3) + throw V8Exception("Wrong number of arguments in createDocument"); + if (!(V8DocumentType::hasInstance(args[2]))) + throw V8Exception("Parameter mismatch while calling createDocument"); - v8::Local self = args.Holder(); - V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localQualifiedName(args[1]); - Arabica::DOM::DocumentType* localDoctype = V8DOM::toClassPtr(args[2]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8DOMImplementationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localQualifiedName(args[1]); + Arabica::DOM::DocumentType* localDoctype = V8DOM::toClassPtr(args[2]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Document* retVal = new Arabica::DOM::Document(privData->arabicaThis->createDocument(*localNamespaceURI, *localQualifiedName, *localDoctype)); - v8::Handle retCtor = V8Document::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Document* retVal = new Arabica::DOM::Document(privData->arabicaThis->createDocument(*localNamespaceURI, *localQualifiedName, *localDoctype)); + v8::Handle retCtor = V8Document::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Document::V8DocumentPrivate* retPrivData = new V8Document::V8DocumentPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Document::V8DocumentPrivate* retPrivData = new V8Document::V8DocumentPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Document::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Document::jsDestructor); + return retObj; - } +} - bool V8DOMImplementation::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8DOMImplementation::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.h index c648162..f14a39b 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DOMImplementation.h @@ -30,43 +30,43 @@ namespace DOM { class V8DOMImplementation { public: - struct V8DOMImplementationPrivate { - V8DOM* dom; - Arabica::DOM::DOMImplementation* arabicaThis; - }; + struct V8DOMImplementationPrivate { + V8DOM* dom; + Arabica::DOM::DOMImplementation* arabicaThis; + }; - V8_DESTRUCTOR(V8DOMImplementationPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8DOMImplementationPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle hasFeatureCallback(const v8::Arguments&); - static v8::Handle createDocumentTypeCallback(const v8::Arguments&); - static v8::Handle createDocumentCallback(const v8::Arguments&); + static v8::Handle hasFeatureCallback(const v8::Arguments&); + static v8::Handle createDocumentTypeCallback(const v8::Arguments&); + static v8::Handle createDocumentCallback(const v8::Arguments&); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("DOMImplementation")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("DOMImplementation")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - prototype->Set(v8::String::NewSymbol("hasFeature"), - v8::FunctionTemplate::New(V8DOMImplementation::hasFeatureCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createDocumentType"), - v8::FunctionTemplate::New(V8DOMImplementation::createDocumentTypeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createDocument"), - v8::FunctionTemplate::New(V8DOMImplementation::createDocumentCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("hasFeature"), + v8::FunctionTemplate::New(V8DOMImplementation::hasFeatureCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createDocumentType"), + v8::FunctionTemplate::New(V8DOMImplementation::createDocumentTypeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createDocument"), + v8::FunctionTemplate::New(V8DOMImplementation::createDocumentCallback, v8::Undefined()), static_cast(v8::DontDelete)); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.cpp index 0a80873..2bad2dd 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.cpp @@ -15,391 +15,391 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Document::Tmpl; +v8::Persistent V8Document::Tmpl; - v8::Handle V8Document::doctypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::DocumentType* arbaicaRet = new Arabica::DOM::DocumentType(privData->arabicaThis->getDoctype()); +v8::Handle V8Document::doctypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::DocumentType* arbaicaRet = new Arabica::DOM::DocumentType(privData->arabicaThis->getDoctype()); - v8::Handle arbaicaRetCtor = V8DocumentType::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); + v8::Handle arbaicaRetCtor = V8DocumentType::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - V8DocumentType::V8DocumentTypePrivate* retPrivData = new V8DocumentType::V8DocumentTypePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8DocumentType::jsDestructor); - return arbaicaRetObj; + struct V8DocumentType::V8DocumentTypePrivate* retPrivData = new V8DocumentType::V8DocumentTypePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - } + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8DocumentType::jsDestructor); + return arbaicaRetObj; - v8::Handle V8Document::implementationAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::DOMImplementation* arbaicaRet = new Arabica::DOM::DOMImplementation(privData->arabicaThis->getImplementation()); +} - v8::Handle arbaicaRetCtor = V8DOMImplementation::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); +v8::Handle V8Document::implementationAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::DOMImplementation* arbaicaRet = new Arabica::DOM::DOMImplementation(privData->arabicaThis->getImplementation()); - V8DOMImplementation::V8DOMImplementationPrivate* retPrivData = new V8DOMImplementation::V8DOMImplementationPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8DOMImplementation::jsDestructor); - return arbaicaRetObj; + v8::Handle arbaicaRetCtor = V8DOMImplementation::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - } + struct V8DOMImplementation::V8DOMImplementationPrivate* retPrivData = new V8DOMImplementation::V8DOMImplementationPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - v8::Handle V8Document::documentElementAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Element* arbaicaRet = new Arabica::DOM::Element(privData->arabicaThis->getDocumentElement()); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8DOMImplementation::jsDestructor); + return arbaicaRetObj; - v8::Handle arbaicaRetCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); +} - V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Element::jsDestructor); - return arbaicaRetObj; +v8::Handle V8Document::documentElementAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Element* arbaicaRet = new Arabica::DOM::Element(privData->arabicaThis->getDocumentElement()); - } - v8::Handle V8Document::createElementCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createElement"); + v8::Handle arbaicaRetCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localTagName(args[0]); + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->createElement(*localTagName)); - v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Element::jsDestructor); + return arbaicaRetObj; - struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +} +v8::Handle V8Document::createElementCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createElement"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localTagName(args[0]); - retObj.MakeWeak(0, V8Element::jsDestructor); - return retObj; + Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->createElement(*localTagName)); + v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createDocumentFragmentCallback(const v8::Arguments& args) { + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + retObj.MakeWeak(0, V8Element::jsDestructor); + return retObj; - Arabica::DOM::DocumentFragment* retVal = new Arabica::DOM::DocumentFragment(privData->arabicaThis->createDocumentFragment()); - v8::Handle retCtor = V8DocumentFragment::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8DocumentFragment::V8DocumentFragmentPrivate* retPrivData = new V8DocumentFragment::V8DocumentFragmentPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createDocumentFragmentCallback(const v8::Arguments& args) { - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - retObj.MakeWeak(0, V8DocumentFragment::jsDestructor); - return retObj; + Arabica::DOM::DocumentFragment* retVal = new Arabica::DOM::DocumentFragment(privData->arabicaThis->createDocumentFragment()); + v8::Handle retCtor = V8DocumentFragment::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8DocumentFragment::V8DocumentFragmentPrivate* retPrivData = new V8DocumentFragment::V8DocumentFragmentPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createTextNodeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createTextNode"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localData(args[0]); + retObj.MakeWeak(0, V8DocumentFragment::jsDestructor); + return retObj; - Arabica::DOM::Text* retVal = new Arabica::DOM::Text(privData->arabicaThis->createTextNode(*localData)); - v8::Handle retCtor = V8Text::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Text::V8TextPrivate* retPrivData = new V8Text::V8TextPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createTextNodeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createTextNode"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localData(args[0]); - retObj.MakeWeak(0, V8Text::jsDestructor); - return retObj; + Arabica::DOM::Text* retVal = new Arabica::DOM::Text(privData->arabicaThis->createTextNode(*localData)); + v8::Handle retCtor = V8Text::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Text::V8TextPrivate* retPrivData = new V8Text::V8TextPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createCommentCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createComment"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localData(args[0]); + retObj.MakeWeak(0, V8Text::jsDestructor); + return retObj; - Arabica::DOM::Comment* retVal = new Arabica::DOM::Comment(privData->arabicaThis->createComment(*localData)); - v8::Handle retCtor = V8Comment::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Comment::V8CommentPrivate* retPrivData = new V8Comment::V8CommentPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createCommentCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createComment"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localData(args[0]); - retObj.MakeWeak(0, V8Comment::jsDestructor); - return retObj; + Arabica::DOM::Comment* retVal = new Arabica::DOM::Comment(privData->arabicaThis->createComment(*localData)); + v8::Handle retCtor = V8Comment::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Comment::V8CommentPrivate* retPrivData = new V8Comment::V8CommentPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createCDATASectionCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createCDATASection"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localData(args[0]); + retObj.MakeWeak(0, V8Comment::jsDestructor); + return retObj; - Arabica::DOM::CDATASection* retVal = new Arabica::DOM::CDATASection(privData->arabicaThis->createCDATASection(*localData)); - v8::Handle retCtor = V8CDATASection::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8CDATASection::V8CDATASectionPrivate* retPrivData = new V8CDATASection::V8CDATASectionPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createCDATASectionCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createCDATASection"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localData(args[0]); - retObj.MakeWeak(0, V8CDATASection::jsDestructor); - return retObj; + Arabica::DOM::CDATASection* retVal = new Arabica::DOM::CDATASection(privData->arabicaThis->createCDATASection(*localData)); + v8::Handle retCtor = V8CDATASection::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8CDATASection::V8CDATASectionPrivate* retPrivData = new V8CDATASection::V8CDATASectionPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createProcessingInstructionCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in createProcessingInstruction"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localTarget(args[0]); - v8::String::AsciiValue localData(args[1]); + retObj.MakeWeak(0, V8CDATASection::jsDestructor); + return retObj; - Arabica::DOM::ProcessingInstruction* retVal = new Arabica::DOM::ProcessingInstruction(privData->arabicaThis->createProcessingInstruction(*localTarget, *localData)); - v8::Handle retCtor = V8ProcessingInstruction::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8ProcessingInstruction::V8ProcessingInstructionPrivate* retPrivData = new V8ProcessingInstruction::V8ProcessingInstructionPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createProcessingInstructionCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in createProcessingInstruction"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localTarget(args[0]); + v8::String::AsciiValue localData(args[1]); - retObj.MakeWeak(0, V8ProcessingInstruction::jsDestructor); - return retObj; + Arabica::DOM::ProcessingInstruction* retVal = new Arabica::DOM::ProcessingInstruction(privData->arabicaThis->createProcessingInstruction(*localTarget, *localData)); + v8::Handle retCtor = V8ProcessingInstruction::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8ProcessingInstruction::V8ProcessingInstructionPrivate* retPrivData = new V8ProcessingInstruction::V8ProcessingInstructionPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createAttributeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createAttribute"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + retObj.MakeWeak(0, V8ProcessingInstruction::jsDestructor); + return retObj; - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->createAttribute(*localName)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createAttributeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createAttribute"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->createAttribute(*localName)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createEntityReferenceCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in createEntityReference"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - Arabica::DOM::EntityReference* retVal = new Arabica::DOM::EntityReference(privData->arabicaThis->createEntityReference(*localName)); - v8::Handle retCtor = V8EntityReference::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8EntityReference::V8EntityReferencePrivate* retPrivData = new V8EntityReference::V8EntityReferencePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createEntityReferenceCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in createEntityReference"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - retObj.MakeWeak(0, V8EntityReference::jsDestructor); - return retObj; + Arabica::DOM::EntityReference* retVal = new Arabica::DOM::EntityReference(privData->arabicaThis->createEntityReference(*localName)); + v8::Handle retCtor = V8EntityReference::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8EntityReference::V8EntityReferencePrivate* retPrivData = new V8EntityReference::V8EntityReferencePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::getElementsByTagNameCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getElementsByTagName"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localTagname(args[0]); + retObj.MakeWeak(0, V8EntityReference::jsDestructor); + return retObj; - Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagName(*localTagname)); - v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::getElementsByTagNameCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getElementsByTagName"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localTagname(args[0]); - retObj.MakeWeak(0, V8NodeList::jsDestructor); - return retObj; + Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagName(*localTagname)); + v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::importNodeCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in importNode"); - if (!(V8Node::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling importNode"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localImportedNode = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - bool localDeep = args[1]->ToBoolean()->BooleanValue(); + retObj.MakeWeak(0, V8NodeList::jsDestructor); + return retObj; - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->importNode(*localImportedNode, localDeep)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::importNodeCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in importNode"); + if (!(V8Node::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling importNode"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localImportedNode = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + bool localDeep = args[1]->ToBoolean()->BooleanValue(); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->importNode(*localImportedNode, localDeep)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createElementNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in createElementNS"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localQualifiedName(args[1]); + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->createElementNS(*localNamespaceURI, *localQualifiedName)); - v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createElementNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in createElementNS"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localQualifiedName(args[1]); - retObj.MakeWeak(0, V8Element::jsDestructor); - return retObj; + Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->createElementNS(*localNamespaceURI, *localQualifiedName)); + v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::createAttributeNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in createAttributeNS"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localQualifiedName(args[1]); + retObj.MakeWeak(0, V8Element::jsDestructor); + return retObj; - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->createAttributeNS(*localNamespaceURI, *localQualifiedName)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::createAttributeNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in createAttributeNS"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localQualifiedName(args[1]); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->createAttributeNS(*localNamespaceURI, *localQualifiedName)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::getElementsByTagNameNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getElementsByTagNameNS"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagNameNS(*localNamespaceURI, *localLocalName)); - v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::getElementsByTagNameNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in getElementsByTagNameNS"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - retObj.MakeWeak(0, V8NodeList::jsDestructor); - return retObj; + Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagNameNS(*localNamespaceURI, *localLocalName)); + v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - v8::Handle V8Document::getElementByIdCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getElementById"); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localElementId(args[0]); + retObj.MakeWeak(0, V8NodeList::jsDestructor); + return retObj; - Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->getElementById(*localElementId)); - v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Document::getElementByIdCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getElementById"); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Local self = args.Holder(); + struct V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localElementId(args[0]); - retObj.MakeWeak(0, V8Element::jsDestructor); - return retObj; + Arabica::DOM::Element* retVal = new Arabica::DOM::Element(privData->arabicaThis->getElementById(*localElementId)); + v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - } + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - bool V8Document::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); -} -} + retObj.MakeWeak(0, V8Element::jsDestructor); + return retObj; + +} + +bool V8Document::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} + +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.h index f07a5ea..22d2713 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Document.h @@ -31,89 +31,89 @@ namespace DOM { class V8Document { public: - struct V8DocumentPrivate { - V8DOM* dom; - Arabica::DOM::Document* arabicaThis; - }; - - V8_DESTRUCTOR(V8DocumentPrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle createElementCallback(const v8::Arguments&); - static v8::Handle createDocumentFragmentCallback(const v8::Arguments&); - static v8::Handle createTextNodeCallback(const v8::Arguments&); - static v8::Handle createCommentCallback(const v8::Arguments&); - static v8::Handle createCDATASectionCallback(const v8::Arguments&); - static v8::Handle createProcessingInstructionCallback(const v8::Arguments&); - static v8::Handle createAttributeCallback(const v8::Arguments&); - static v8::Handle createEntityReferenceCallback(const v8::Arguments&); - static v8::Handle getElementsByTagNameCallback(const v8::Arguments&); - static v8::Handle importNodeCallback(const v8::Arguments&); - static v8::Handle createElementNSCallback(const v8::Arguments&); - static v8::Handle createAttributeNSCallback(const v8::Arguments&); - static v8::Handle getElementsByTagNameNSCallback(const v8::Arguments&); - static v8::Handle getElementByIdCallback(const v8::Arguments&); - static v8::Handle evaluateCustomCallback(const v8::Arguments&); - - static v8::Handle doctypeAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle implementationAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle documentElementAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Document")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("doctype"), V8Document::doctypeAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("implementation"), V8Document::implementationAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("documentElement"), V8Document::documentElementAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("createElement"), - v8::FunctionTemplate::New(V8Document::createElementCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createDocumentFragment"), - v8::FunctionTemplate::New(V8Document::createDocumentFragmentCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createTextNode"), - v8::FunctionTemplate::New(V8Document::createTextNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createComment"), - v8::FunctionTemplate::New(V8Document::createCommentCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createCDATASection"), - v8::FunctionTemplate::New(V8Document::createCDATASectionCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createProcessingInstruction"), - v8::FunctionTemplate::New(V8Document::createProcessingInstructionCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createAttribute"), - v8::FunctionTemplate::New(V8Document::createAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createEntityReference"), - v8::FunctionTemplate::New(V8Document::createEntityReferenceCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getElementsByTagName"), - v8::FunctionTemplate::New(V8Document::getElementsByTagNameCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("importNode"), - v8::FunctionTemplate::New(V8Document::importNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createElementNS"), - v8::FunctionTemplate::New(V8Document::createElementNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("createAttributeNS"), - v8::FunctionTemplate::New(V8Document::createAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getElementsByTagNameNS"), - v8::FunctionTemplate::New(V8Document::getElementsByTagNameNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getElementById"), - v8::FunctionTemplate::New(V8Document::getElementByIdCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("evaluate"), - v8::FunctionTemplate::New(V8Document::evaluateCustomCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8DocumentPrivate { + V8DOM* dom; + Arabica::DOM::Document* arabicaThis; + }; + + V8_DESTRUCTOR(V8DocumentPrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle createElementCallback(const v8::Arguments&); + static v8::Handle createDocumentFragmentCallback(const v8::Arguments&); + static v8::Handle createTextNodeCallback(const v8::Arguments&); + static v8::Handle createCommentCallback(const v8::Arguments&); + static v8::Handle createCDATASectionCallback(const v8::Arguments&); + static v8::Handle createProcessingInstructionCallback(const v8::Arguments&); + static v8::Handle createAttributeCallback(const v8::Arguments&); + static v8::Handle createEntityReferenceCallback(const v8::Arguments&); + static v8::Handle getElementsByTagNameCallback(const v8::Arguments&); + static v8::Handle importNodeCallback(const v8::Arguments&); + static v8::Handle createElementNSCallback(const v8::Arguments&); + static v8::Handle createAttributeNSCallback(const v8::Arguments&); + static v8::Handle getElementsByTagNameNSCallback(const v8::Arguments&); + static v8::Handle getElementByIdCallback(const v8::Arguments&); + static v8::Handle evaluateCustomCallback(const v8::Arguments&); + + static v8::Handle doctypeAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle implementationAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle documentElementAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Document")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("doctype"), V8Document::doctypeAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("implementation"), V8Document::implementationAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("documentElement"), V8Document::documentElementAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("createElement"), + v8::FunctionTemplate::New(V8Document::createElementCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createDocumentFragment"), + v8::FunctionTemplate::New(V8Document::createDocumentFragmentCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createTextNode"), + v8::FunctionTemplate::New(V8Document::createTextNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createComment"), + v8::FunctionTemplate::New(V8Document::createCommentCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createCDATASection"), + v8::FunctionTemplate::New(V8Document::createCDATASectionCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createProcessingInstruction"), + v8::FunctionTemplate::New(V8Document::createProcessingInstructionCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createAttribute"), + v8::FunctionTemplate::New(V8Document::createAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createEntityReference"), + v8::FunctionTemplate::New(V8Document::createEntityReferenceCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getElementsByTagName"), + v8::FunctionTemplate::New(V8Document::getElementsByTagNameCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("importNode"), + v8::FunctionTemplate::New(V8Document::importNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createElementNS"), + v8::FunctionTemplate::New(V8Document::createElementNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("createAttributeNS"), + v8::FunctionTemplate::New(V8Document::createAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getElementsByTagNameNS"), + v8::FunctionTemplate::New(V8Document::getElementsByTagNameNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getElementById"), + v8::FunctionTemplate::New(V8Document::getElementByIdCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("evaluate"), + v8::FunctionTemplate::New(V8Document::evaluateCustomCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentCustom.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentCustom.cpp index 5c1ac46..2756287 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentCustom.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentCustom.cpp @@ -4,37 +4,37 @@ namespace Arabica { namespace DOM { - + v8::Handle V8Document::evaluateCustomCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in evaluate"); + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in evaluate"); // if (!((V8Node::hasInstance(args[1])) && (V8XPathResult::hasInstance(args[3])))) // throw V8Exception("Parameter mismatch while calling evaluate"); - v8::Local self = args.Holder(); - V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - v8::String::AsciiValue localExpression(args[0]); - - XPath::XPathValue* retVal; - if (args.Length() > 1) { - Arabica::DOM::Node* localContextNode = V8DOM::toClassPtr >(args[1]->ToObject()->GetInternalField(0)); - retVal = new XPath::XPathValue(privData->dom->xpath->evaluate(*localExpression, *localContextNode)); - } else { - retVal = new XPath::XPathValue(privData->dom->xpath->evaluate(*localExpression, *privData->arabicaThis)); - } - - v8::Handle retCtor = V8XPathResult::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - - V8XPathResult::V8XPathResultPrivate* retPrivData = new V8XPathResult::V8XPathResultPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; - - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - - retObj.MakeWeak(0, V8XPathResult::jsDestructor); - return retObj; + v8::Local self = args.Holder(); + V8DocumentPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + v8::String::AsciiValue localExpression(args[0]); + + XPath::XPathValue* retVal; + if (args.Length() > 1) { + Arabica::DOM::Node* localContextNode = V8DOM::toClassPtr >(args[1]->ToObject()->GetInternalField(0)); + retVal = new XPath::XPathValue(privData->dom->xpath->evaluate(*localExpression, *localContextNode)); + } else { + retVal = new XPath::XPathValue(privData->dom->xpath->evaluate(*localExpression, *privData->arabicaThis)); + } + + v8::Handle retCtor = V8XPathResult::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + V8XPathResult::V8XPathResultPrivate* retPrivData = new V8XPathResult::V8XPathResultPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8XPathResult::jsDestructor); + return retObj; } diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.cpp index e6bec84..1403574 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.cpp @@ -4,11 +4,11 @@ namespace Arabica { namespace DOM { - v8::Persistent V8DocumentFragment::Tmpl; +v8::Persistent V8DocumentFragment::Tmpl; - bool V8DocumentFragment::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8DocumentFragment::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.h index b1d4280..2340eb7 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentFragment.h @@ -31,35 +31,35 @@ namespace DOM { class V8DocumentFragment { public: - struct V8DocumentFragmentPrivate { - V8DOM* dom; - Arabica::DOM::DocumentFragment* arabicaThis; - }; + struct V8DocumentFragmentPrivate { + V8DOM* dom; + Arabica::DOM::DocumentFragment* arabicaThis; + }; - V8_DESTRUCTOR(V8DocumentFragmentPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8DocumentFragmentPrivate); + static bool hasInstance(v8::Handle); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("DocumentFragment")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("DocumentFragment")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.cpp index 58e4ab6..cd7e2a5 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.cpp @@ -5,75 +5,75 @@ namespace Arabica { namespace DOM { - v8::Persistent V8DocumentType::Tmpl; +v8::Persistent V8DocumentType::Tmpl; - v8::Handle V8DocumentType::nameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8DocumentType::nameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getName().c_str()); - } + return v8::String::New(privData->arabicaThis->getName().c_str()); +} - v8::Handle V8DocumentType::entitiesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getEntities()); +v8::Handle V8DocumentType::entitiesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getEntities()); - v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); + v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); - return arbaicaRetObj; + struct V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - } + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); + return arbaicaRetObj; - v8::Handle V8DocumentType::notationsAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getNotations()); +} - v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); +v8::Handle V8DocumentType::notationsAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getNotations()); - V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); - return arbaicaRetObj; + v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - } + struct V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - v8::Handle V8DocumentType::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); + return arbaicaRetObj; - return v8::String::New(privData->arabicaThis->getPublicId().c_str()); - } +} - v8::Handle V8DocumentType::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8DocumentType::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getSystemId().c_str()); - } + return v8::String::New(privData->arabicaThis->getPublicId().c_str()); +} - v8::Handle V8DocumentType::internalSubsetAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8DocumentType::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getInternalSubset().c_str()); - } - bool V8DocumentType::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } + return v8::String::New(privData->arabicaThis->getSystemId().c_str()); +} -} -} +v8::Handle V8DocumentType::internalSubsetAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8DocumentTypePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + return v8::String::New(privData->arabicaThis->getInternalSubset().c_str()); +} +bool V8DocumentType::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} + +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.h index 0319ac6..462cec9 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8DocumentType.h @@ -31,53 +31,53 @@ namespace DOM { class V8DocumentType { public: - struct V8DocumentTypePrivate { - V8DOM* dom; - Arabica::DOM::DocumentType* arabicaThis; - }; - - V8_DESTRUCTOR(V8DocumentTypePrivate); - static bool hasInstance(v8::Handle); - - - static v8::Handle nameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle entitiesAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle notationsAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle internalSubsetAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("DocumentType")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("name"), V8DocumentType::nameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("entities"), V8DocumentType::entitiesAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("notations"), V8DocumentType::notationsAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("publicId"), V8DocumentType::publicIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("systemId"), V8DocumentType::systemIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("internalSubset"), V8DocumentType::internalSubsetAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - - - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8DocumentTypePrivate { + V8DOM* dom; + Arabica::DOM::DocumentType* arabicaThis; + }; + + V8_DESTRUCTOR(V8DocumentTypePrivate); + static bool hasInstance(v8::Handle); + + + static v8::Handle nameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle entitiesAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle notationsAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle internalSubsetAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("DocumentType")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("name"), V8DocumentType::nameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("entities"), V8DocumentType::entitiesAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("notations"), V8DocumentType::notationsAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("publicId"), V8DocumentType::publicIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("systemId"), V8DocumentType::systemIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("internalSubset"), V8DocumentType::internalSubsetAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + + + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.cpp index 2dd81c8..3c7d7da 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.cpp @@ -6,297 +6,297 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Element::Tmpl; +v8::Persistent V8Element::Tmpl; - v8::Handle V8Element::tagNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Element::tagNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getTagName().c_str()); - } - v8::Handle V8Element::getAttributeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getAttribute"); + return v8::String::New(privData->arabicaThis->getTagName().c_str()); +} +v8::Handle V8Element::getAttributeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getAttribute"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - std::string retVal = privData->arabicaThis->getAttribute(*localName); + std::string retVal = privData->arabicaThis->getAttribute(*localName); - return v8::String::New(retVal.c_str()); - } + return v8::String::New(retVal.c_str()); +} - v8::Handle V8Element::setAttributeCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in setAttribute"); +v8::Handle V8Element::setAttributeCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in setAttribute"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); - v8::String::AsciiValue localValue(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); + v8::String::AsciiValue localValue(args[1]); - privData->arabicaThis->setAttribute(*localName, *localValue); + privData->arabicaThis->setAttribute(*localName, *localValue); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8Element::removeAttributeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in removeAttribute"); +v8::Handle V8Element::removeAttributeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in removeAttribute"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - privData->arabicaThis->removeAttribute(*localName); + privData->arabicaThis->removeAttribute(*localName); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8Element::getAttributeNodeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getAttributeNode"); +v8::Handle V8Element::getAttributeNodeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getAttributeNode"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->getAttributeNode(*localName)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->getAttributeNode(*localName)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::setAttributeNodeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in setAttributeNode"); - if (!(V8Attr::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling setAttributeNode"); +v8::Handle V8Element::setAttributeNodeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in setAttributeNode"); + if (!(V8Attr::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling setAttributeNode"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Attr* localNewAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Attr* localNewAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->setAttributeNode(*localNewAttr)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->setAttributeNode(*localNewAttr)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::removeAttributeNodeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in removeAttributeNode"); - if (!(V8Attr::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling removeAttributeNode"); +v8::Handle V8Element::removeAttributeNodeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in removeAttributeNode"); + if (!(V8Attr::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling removeAttributeNode"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Attr* localOldAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Attr* localOldAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->removeAttributeNode(*localOldAttr)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->removeAttributeNode(*localOldAttr)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::getElementsByTagNameCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getElementsByTagName"); +v8::Handle V8Element::getElementsByTagNameCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getElementsByTagName"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagName(*localName)); - v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagName(*localName)); + v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8NodeList::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8NodeList::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::getAttributeNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getAttributeNS"); +v8::Handle V8Element::getAttributeNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in getAttributeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - std::string retVal = privData->arabicaThis->getAttributeNS(*localNamespaceURI, *localLocalName); + std::string retVal = privData->arabicaThis->getAttributeNS(*localNamespaceURI, *localLocalName); - return v8::String::New(retVal.c_str()); - } + return v8::String::New(retVal.c_str()); +} - v8::Handle V8Element::setAttributeNSCallback(const v8::Arguments& args) { - if (args.Length() < 3) - throw V8Exception("Wrong number of arguments in setAttributeNS"); +v8::Handle V8Element::setAttributeNSCallback(const v8::Arguments& args) { + if (args.Length() < 3) + throw V8Exception("Wrong number of arguments in setAttributeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localQualifiedName(args[1]); - v8::String::AsciiValue localValue(args[2]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localQualifiedName(args[1]); + v8::String::AsciiValue localValue(args[2]); - privData->arabicaThis->setAttributeNS(*localNamespaceURI, *localQualifiedName, *localValue); + privData->arabicaThis->setAttributeNS(*localNamespaceURI, *localQualifiedName, *localValue); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8Element::removeAttributeNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in removeAttributeNS"); +v8::Handle V8Element::removeAttributeNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in removeAttributeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - privData->arabicaThis->removeAttributeNS(*localNamespaceURI, *localLocalName); + privData->arabicaThis->removeAttributeNS(*localNamespaceURI, *localLocalName); - return v8::Undefined(); - } + return v8::Undefined(); +} - v8::Handle V8Element::getAttributeNodeNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getAttributeNodeNS"); +v8::Handle V8Element::getAttributeNodeNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in getAttributeNodeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->getAttributeNodeNS(*localNamespaceURI, *localLocalName)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->getAttributeNodeNS(*localNamespaceURI, *localLocalName)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::setAttributeNodeNSCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in setAttributeNodeNS"); - if (!(V8Attr::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling setAttributeNodeNS"); +v8::Handle V8Element::setAttributeNodeNSCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in setAttributeNodeNS"); + if (!(V8Attr::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling setAttributeNodeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Attr* localNewAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Attr* localNewAttr = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->setAttributeNodeNS(*localNewAttr)); - v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Attr* retVal = new Arabica::DOM::Attr(privData->arabicaThis->setAttributeNodeNS(*localNewAttr)); + v8::Handle retCtor = V8Attr::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Attr::V8AttrPrivate* retPrivData = new V8Attr::V8AttrPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Attr::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Attr::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::getElementsByTagNameNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getElementsByTagNameNS"); +v8::Handle V8Element::getElementsByTagNameNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in getElementsByTagNameNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagNameNS(*localNamespaceURI, *localLocalName)); - v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::NodeList* retVal = new Arabica::DOM::NodeList(privData->arabicaThis->getElementsByTagNameNS(*localNamespaceURI, *localLocalName)); + v8::Handle retCtor = V8NodeList::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8NodeList::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8NodeList::jsDestructor); + return retObj; - } +} - v8::Handle V8Element::hasAttributeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in hasAttribute"); +v8::Handle V8Element::hasAttributeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in hasAttribute"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - bool retVal = privData->arabicaThis->hasAttribute(*localName); + bool retVal = privData->arabicaThis->hasAttribute(*localName); - return v8::Boolean::New(retVal); - } + return v8::Boolean::New(retVal); +} - v8::Handle V8Element::hasAttributeNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in hasAttributeNS"); +v8::Handle V8Element::hasAttributeNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in hasAttributeNS"); - v8::Local self = args.Holder(); - V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8ElementPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - bool retVal = privData->arabicaThis->hasAttributeNS(*localNamespaceURI, *localLocalName); + bool retVal = privData->arabicaThis->hasAttributeNS(*localNamespaceURI, *localLocalName); - return v8::Boolean::New(retVal); - } + return v8::Boolean::New(retVal); +} - bool V8Element::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8Element::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.h index 7bb2f61..5a824b3 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Element.h @@ -31,83 +31,83 @@ namespace DOM { class V8Element { public: - struct V8ElementPrivate { - V8DOM* dom; - Arabica::DOM::Element* arabicaThis; - }; - - V8_DESTRUCTOR(V8ElementPrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle getAttributeCallback(const v8::Arguments&); - static v8::Handle setAttributeCallback(const v8::Arguments&); - static v8::Handle removeAttributeCallback(const v8::Arguments&); - static v8::Handle getAttributeNodeCallback(const v8::Arguments&); - static v8::Handle setAttributeNodeCallback(const v8::Arguments&); - static v8::Handle removeAttributeNodeCallback(const v8::Arguments&); - static v8::Handle getElementsByTagNameCallback(const v8::Arguments&); - static v8::Handle getAttributeNSCallback(const v8::Arguments&); - static v8::Handle setAttributeNSCallback(const v8::Arguments&); - static v8::Handle removeAttributeNSCallback(const v8::Arguments&); - static v8::Handle getAttributeNodeNSCallback(const v8::Arguments&); - static v8::Handle setAttributeNodeNSCallback(const v8::Arguments&); - static v8::Handle getElementsByTagNameNSCallback(const v8::Arguments&); - static v8::Handle hasAttributeCallback(const v8::Arguments&); - static v8::Handle hasAttributeNSCallback(const v8::Arguments&); - - static v8::Handle tagNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Element")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("tagName"), V8Element::tagNameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("getAttribute"), - v8::FunctionTemplate::New(V8Element::getAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setAttribute"), - v8::FunctionTemplate::New(V8Element::setAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeAttribute"), - v8::FunctionTemplate::New(V8Element::removeAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getAttributeNode"), - v8::FunctionTemplate::New(V8Element::getAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setAttributeNode"), - v8::FunctionTemplate::New(V8Element::setAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeAttributeNode"), - v8::FunctionTemplate::New(V8Element::removeAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getElementsByTagName"), - v8::FunctionTemplate::New(V8Element::getElementsByTagNameCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getAttributeNS"), - v8::FunctionTemplate::New(V8Element::getAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setAttributeNS"), - v8::FunctionTemplate::New(V8Element::setAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeAttributeNS"), - v8::FunctionTemplate::New(V8Element::removeAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getAttributeNodeNS"), - v8::FunctionTemplate::New(V8Element::getAttributeNodeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setAttributeNodeNS"), - v8::FunctionTemplate::New(V8Element::setAttributeNodeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getElementsByTagNameNS"), - v8::FunctionTemplate::New(V8Element::getElementsByTagNameNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("hasAttribute"), - v8::FunctionTemplate::New(V8Element::hasAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("hasAttributeNS"), - v8::FunctionTemplate::New(V8Element::hasAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8ElementPrivate { + V8DOM* dom; + Arabica::DOM::Element* arabicaThis; + }; + + V8_DESTRUCTOR(V8ElementPrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle getAttributeCallback(const v8::Arguments&); + static v8::Handle setAttributeCallback(const v8::Arguments&); + static v8::Handle removeAttributeCallback(const v8::Arguments&); + static v8::Handle getAttributeNodeCallback(const v8::Arguments&); + static v8::Handle setAttributeNodeCallback(const v8::Arguments&); + static v8::Handle removeAttributeNodeCallback(const v8::Arguments&); + static v8::Handle getElementsByTagNameCallback(const v8::Arguments&); + static v8::Handle getAttributeNSCallback(const v8::Arguments&); + static v8::Handle setAttributeNSCallback(const v8::Arguments&); + static v8::Handle removeAttributeNSCallback(const v8::Arguments&); + static v8::Handle getAttributeNodeNSCallback(const v8::Arguments&); + static v8::Handle setAttributeNodeNSCallback(const v8::Arguments&); + static v8::Handle getElementsByTagNameNSCallback(const v8::Arguments&); + static v8::Handle hasAttributeCallback(const v8::Arguments&); + static v8::Handle hasAttributeNSCallback(const v8::Arguments&); + + static v8::Handle tagNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Element")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("tagName"), V8Element::tagNameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("getAttribute"), + v8::FunctionTemplate::New(V8Element::getAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setAttribute"), + v8::FunctionTemplate::New(V8Element::setAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeAttribute"), + v8::FunctionTemplate::New(V8Element::removeAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getAttributeNode"), + v8::FunctionTemplate::New(V8Element::getAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setAttributeNode"), + v8::FunctionTemplate::New(V8Element::setAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeAttributeNode"), + v8::FunctionTemplate::New(V8Element::removeAttributeNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getElementsByTagName"), + v8::FunctionTemplate::New(V8Element::getElementsByTagNameCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getAttributeNS"), + v8::FunctionTemplate::New(V8Element::getAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setAttributeNS"), + v8::FunctionTemplate::New(V8Element::setAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeAttributeNS"), + v8::FunctionTemplate::New(V8Element::removeAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getAttributeNodeNS"), + v8::FunctionTemplate::New(V8Element::getAttributeNodeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setAttributeNodeNS"), + v8::FunctionTemplate::New(V8Element::setAttributeNodeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getElementsByTagNameNS"), + v8::FunctionTemplate::New(V8Element::getElementsByTagNameNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("hasAttribute"), + v8::FunctionTemplate::New(V8Element::hasAttributeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("hasAttributeNS"), + v8::FunctionTemplate::New(V8Element::hasAttributeNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.cpp index dc8696d..8bdd57c 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.cpp @@ -4,32 +4,32 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Entity::Tmpl; +v8::Persistent V8Entity::Tmpl; - v8::Handle V8Entity::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Entity::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getPublicId().c_str()); - } + return v8::String::New(privData->arabicaThis->getPublicId().c_str()); +} - v8::Handle V8Entity::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Entity::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getSystemId().c_str()); - } + return v8::String::New(privData->arabicaThis->getSystemId().c_str()); +} - v8::Handle V8Entity::notationNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Entity::notationNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8EntityPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getNotationName().c_str()); - } - bool V8Entity::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } + return v8::String::New(privData->arabicaThis->getNotationName().c_str()); +} +bool V8Entity::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.h index 1c609d9..6c22e3a 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Entity.h @@ -31,44 +31,44 @@ namespace DOM { class V8Entity { public: - struct V8EntityPrivate { - V8DOM* dom; - Arabica::DOM::Entity* arabicaThis; - }; + struct V8EntityPrivate { + V8DOM* dom; + Arabica::DOM::Entity* arabicaThis; + }; - V8_DESTRUCTOR(V8EntityPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8EntityPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle notationNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle notationNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Entity")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Entity")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - instance->SetAccessor(v8::String::NewSymbol("publicId"), V8Entity::publicIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("systemId"), V8Entity::systemIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("notationName"), V8Entity::notationNameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("publicId"), V8Entity::publicIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("systemId"), V8Entity::systemIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("notationName"), V8Entity::notationNameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.cpp index 95ceee8..197fadd 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.cpp @@ -4,11 +4,11 @@ namespace Arabica { namespace DOM { - v8::Persistent V8EntityReference::Tmpl; +v8::Persistent V8EntityReference::Tmpl; - bool V8EntityReference::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8EntityReference::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.h index 1bd33e9..d99c7ab 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8EntityReference.h @@ -31,35 +31,35 @@ namespace DOM { class V8EntityReference { public: - struct V8EntityReferencePrivate { - V8DOM* dom; - Arabica::DOM::EntityReference* arabicaThis; - }; + struct V8EntityReferencePrivate { + V8DOM* dom; + Arabica::DOM::EntityReference* arabicaThis; + }; - V8_DESTRUCTOR(V8EntityReferencePrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8EntityReferencePrivate); + static bool hasInstance(v8::Handle); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("EntityReference")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("EntityReference")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.cpp index 1037b91..4608ea1 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.cpp @@ -4,185 +4,185 @@ namespace Arabica { namespace DOM { - v8::Persistent V8NamedNodeMap::Tmpl; +v8::Persistent V8NamedNodeMap::Tmpl; - v8::Handle V8NamedNodeMap::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8NamedNodeMap::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Integer::New(privData->arabicaThis->getLength()); - } - v8::Handle V8NamedNodeMap::getNamedItemCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in getNamedItem"); + return v8::Integer::New(privData->arabicaThis->getLength()); +} +v8::Handle V8NamedNodeMap::getNamedItemCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in getNamedItem"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->getNamedItem(*localName)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->getNamedItem(*localName)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::setNamedItemCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in setNamedItem"); - if (!(V8Node::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling setNamedItem"); +v8::Handle V8NamedNodeMap::setNamedItemCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in setNamedItem"); + if (!(V8Node::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling setNamedItem"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localArg = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localArg = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->setNamedItem(*localArg)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->setNamedItem(*localArg)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::removeNamedItemCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in removeNamedItem"); +v8::Handle V8NamedNodeMap::removeNamedItemCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in removeNamedItem"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localName(args[0]); + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localName(args[0]); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeNamedItem(*localName)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeNamedItem(*localName)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::itemCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in item"); +v8::Handle V8NamedNodeMap::itemCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in item"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localIndex = args[0]->ToNumber()->Uint32Value(); + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localIndex = args[0]->ToNumber()->Uint32Value(); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->item(localIndex)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->item(localIndex)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::getNamedItemNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in getNamedItemNS"); +v8::Handle V8NamedNodeMap::getNamedItemNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in getNamedItemNS"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->getNamedItemNS(*localNamespaceURI, *localLocalName)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->getNamedItemNS(*localNamespaceURI, *localLocalName)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::setNamedItemNSCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in setNamedItemNS"); - if (!(V8Node::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling setNamedItemNS"); +v8::Handle V8NamedNodeMap::setNamedItemNSCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in setNamedItemNS"); + if (!(V8Node::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling setNamedItemNS"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localArg = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localArg = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->setNamedItemNS(*localArg)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->setNamedItemNS(*localArg)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - v8::Handle V8NamedNodeMap::removeNamedItemNSCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in removeNamedItemNS"); +v8::Handle V8NamedNodeMap::removeNamedItemNSCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in removeNamedItemNS"); - v8::Local self = args.Holder(); - V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNamespaceURI(args[0]); - v8::String::AsciiValue localLocalName(args[1]); + v8::Local self = args.Holder(); + struct V8NamedNodeMapPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNamespaceURI(args[0]); + v8::String::AsciiValue localLocalName(args[1]); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeNamedItemNS(*localNamespaceURI, *localLocalName)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeNamedItemNS(*localNamespaceURI, *localLocalName)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - bool V8NamedNodeMap::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8NamedNodeMap::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.h index 53402cc..52e6c54 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NamedNodeMap.h @@ -30,58 +30,58 @@ namespace DOM { class V8NamedNodeMap { public: - struct V8NamedNodeMapPrivate { - V8DOM* dom; - Arabica::DOM::NamedNodeMap* arabicaThis; - }; - - V8_DESTRUCTOR(V8NamedNodeMapPrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle getNamedItemCallback(const v8::Arguments&); - static v8::Handle setNamedItemCallback(const v8::Arguments&); - static v8::Handle removeNamedItemCallback(const v8::Arguments&); - static v8::Handle itemCallback(const v8::Arguments&); - static v8::Handle getNamedItemNSCallback(const v8::Arguments&); - static v8::Handle setNamedItemNSCallback(const v8::Arguments&); - static v8::Handle removeNamedItemNSCallback(const v8::Arguments&); - - static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("NamedNodeMap")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("length"), V8NamedNodeMap::lengthAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("getNamedItem"), - v8::FunctionTemplate::New(V8NamedNodeMap::getNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setNamedItem"), - v8::FunctionTemplate::New(V8NamedNodeMap::setNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeNamedItem"), - v8::FunctionTemplate::New(V8NamedNodeMap::removeNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("item"), - v8::FunctionTemplate::New(V8NamedNodeMap::itemCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("getNamedItemNS"), - v8::FunctionTemplate::New(V8NamedNodeMap::getNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("setNamedItemNS"), - v8::FunctionTemplate::New(V8NamedNodeMap::setNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeNamedItemNS"), - v8::FunctionTemplate::New(V8NamedNodeMap::removeNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8NamedNodeMapPrivate { + V8DOM* dom; + Arabica::DOM::NamedNodeMap* arabicaThis; + }; + + V8_DESTRUCTOR(V8NamedNodeMapPrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle getNamedItemCallback(const v8::Arguments&); + static v8::Handle setNamedItemCallback(const v8::Arguments&); + static v8::Handle removeNamedItemCallback(const v8::Arguments&); + static v8::Handle itemCallback(const v8::Arguments&); + static v8::Handle getNamedItemNSCallback(const v8::Arguments&); + static v8::Handle setNamedItemNSCallback(const v8::Arguments&); + static v8::Handle removeNamedItemNSCallback(const v8::Arguments&); + + static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("NamedNodeMap")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("length"), V8NamedNodeMap::lengthAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("getNamedItem"), + v8::FunctionTemplate::New(V8NamedNodeMap::getNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setNamedItem"), + v8::FunctionTemplate::New(V8NamedNodeMap::setNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeNamedItem"), + v8::FunctionTemplate::New(V8NamedNodeMap::removeNamedItemCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("item"), + v8::FunctionTemplate::New(V8NamedNodeMap::itemCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("getNamedItemNS"), + v8::FunctionTemplate::New(V8NamedNodeMap::getNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("setNamedItemNS"), + v8::FunctionTemplate::New(V8NamedNodeMap::setNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeNamedItemNS"), + v8::FunctionTemplate::New(V8NamedNodeMap::removeNamedItemNSCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.cpp index 168e067..52ff3ec 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.cpp @@ -6,380 +6,380 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Node::Tmpl; - +v8::Persistent V8Node::Tmpl; - v8::Handle V8Node::nodeNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - return v8::String::New(privData->arabicaThis->getNodeName().c_str()); - } - - v8::Handle V8Node::nodeValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - return v8::String::New(privData->arabicaThis->getNodeValue().c_str()); - } - - void V8Node::nodeValueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localNodeValue(value); - privData->arabicaThis->setNodeValue(*localNodeValue); - } - - v8::Handle V8Node::nodeTypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - return v8::Integer::New(privData->arabicaThis->getNodeType()); - } - - v8::Handle V8Node::parentNodeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getParentNode()); - - v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::childNodesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::NodeList* arbaicaRet = new Arabica::DOM::NodeList(privData->arabicaThis->getChildNodes()); - - v8::Handle arbaicaRetCtor = V8NodeList::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8NodeList::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::firstChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getFirstChild()); - - v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::lastChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getLastChild()); - - v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::previousSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getPreviousSibling()); - - v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::nextSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getNextSibling()); - - v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::attributesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getAttributes()); - - v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::ownerDocumentAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Document* arbaicaRet = new Arabica::DOM::Document(privData->arabicaThis->getOwnerDocument()); - - v8::Handle arbaicaRetCtor = V8Document::getTmpl()->GetFunction(); - v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - - V8Document::V8DocumentPrivate* retPrivData = new V8Document::V8DocumentPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = arbaicaRet; - - arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - arbaicaRetObj.MakeWeak(0, V8Document::jsDestructor); - return arbaicaRetObj; - - } - - v8::Handle V8Node::namespaceURIAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - return v8::String::New(privData->arabicaThis->getNamespaceURI().c_str()); - } - - v8::Handle V8Node::prefixAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - return v8::String::New(privData->arabicaThis->getPrefix().c_str()); - } - - void V8Node::prefixAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localPrefix(value); - privData->arabicaThis->setPrefix(*localPrefix); - } - - v8::Handle V8Node::localNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getLocalName().c_str()); - } - v8::Handle V8Node::insertBeforeCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in insertBefore"); - if (!((V8Node::hasInstance(args[0])) && (V8Node::hasInstance(args[1])))) - throw V8Exception("Parameter mismatch while calling insertBefore"); +v8::Handle V8Node::nodeNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Node* localRefChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->arabicaThis; + return v8::String::New(privData->arabicaThis->getNodeName().c_str()); +} - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->insertBefore(*localNewChild, *localRefChild)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +v8::Handle V8Node::nodeValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + return v8::String::New(privData->arabicaThis->getNodeValue().c_str()); +} - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); +void V8Node::nodeValueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localNodeValue(value); + privData->arabicaThis->setNodeValue(*localNodeValue); +} - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; +v8::Handle V8Node::nodeTypeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - } + return v8::Integer::New(privData->arabicaThis->getNodeType()); +} - v8::Handle V8Node::replaceChildCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in replaceChild"); - if (!((V8Node::hasInstance(args[0])) && (V8Node::hasInstance(args[1])))) - throw V8Exception("Parameter mismatch while calling replaceChild"); +v8::Handle V8Node::parentNodeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getParentNode()); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; - Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->arabicaThis; + v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->replaceChild(*localNewChild, *localOldChild)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); + return arbaicaRetObj; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); +} - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; +v8::Handle V8Node::childNodesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::NodeList* arbaicaRet = new Arabica::DOM::NodeList(privData->arabicaThis->getChildNodes()); - } + v8::Handle arbaicaRetCtor = V8NodeList::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - v8::Handle V8Node::removeChildCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in removeChild"); - if (!(V8Node::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling removeChild"); + struct V8NodeList::V8NodeListPrivate* retPrivData = new V8NodeList::V8NodeListPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8NodeList::jsDestructor); + return arbaicaRetObj; - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeChild(*localOldChild)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); +} - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; +v8::Handle V8Node::firstChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getFirstChild()); - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - } + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); + return arbaicaRetObj; - v8::Handle V8Node::appendChildCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in appendChild"); - if (!(V8Node::hasInstance(args[0]))) - throw V8Exception("Parameter mismatch while calling appendChild"); +} - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; +v8::Handle V8Node::lastChildAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getLastChild()); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->appendChild(*localNewChild)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); + return arbaicaRetObj; - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; +} - } +v8::Handle V8Node::previousSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getPreviousSibling()); - v8::Handle V8Node::hasChildNodesCallback(const v8::Arguments& args) { + v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - bool retVal = privData->arabicaThis->hasChildNodes(); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); + return arbaicaRetObj; - return v8::Boolean::New(retVal); - } +} - v8::Handle V8Node::cloneNodeCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in cloneNode"); +v8::Handle V8Node::nextSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* arbaicaRet = new Arabica::DOM::Node(privData->arabicaThis->getNextSibling()); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - bool localDeep = args[0]->ToBoolean()->BooleanValue(); + v8::Handle arbaicaRetCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->cloneNode(localDeep)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Node::jsDestructor); + return arbaicaRetObj; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); +} - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; +v8::Handle V8Node::attributesAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::NamedNodeMap* arbaicaRet = new Arabica::DOM::NamedNodeMap(privData->arabicaThis->getAttributes()); - } + v8::Handle arbaicaRetCtor = V8NamedNodeMap::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - v8::Handle V8Node::normalizeCallback(const v8::Arguments& args) { + struct V8NamedNodeMap::V8NamedNodeMapPrivate* retPrivData = new V8NamedNodeMap::V8NamedNodeMapPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8NamedNodeMap::jsDestructor); + return arbaicaRetObj; - privData->arabicaThis->normalize(); +} - return v8::Undefined(); - } +v8::Handle V8Node::ownerDocumentAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Document* arbaicaRet = new Arabica::DOM::Document(privData->arabicaThis->getOwnerDocument()); - v8::Handle V8Node::isSupportedCallback(const v8::Arguments& args) { - if (args.Length() < 2) - throw V8Exception("Wrong number of arguments in isSupported"); + v8::Handle arbaicaRetCtor = V8Document::getTmpl()->GetFunction(); + v8::Persistent arbaicaRetObj = v8::Persistent::New(arbaicaRetCtor->NewInstance()); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localFeature(args[0]); - v8::String::AsciiValue localVersion(args[1]); + struct V8Document::V8DocumentPrivate* retPrivData = new V8Document::V8DocumentPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = arbaicaRet; - bool retVal = privData->arabicaThis->isSupported(*localFeature, *localVersion); + arbaicaRetObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + arbaicaRetObj.MakeWeak(0, V8Document::jsDestructor); + return arbaicaRetObj; - return v8::Boolean::New(retVal); - } +} - v8::Handle V8Node::hasAttributesCallback(const v8::Arguments& args) { +v8::Handle V8Node::namespaceURIAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::Local self = args.Holder(); - V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + return v8::String::New(privData->arabicaThis->getNamespaceURI().c_str()); +} - bool retVal = privData->arabicaThis->hasAttributes(); +v8::Handle V8Node::prefixAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Boolean::New(retVal); - } + return v8::String::New(privData->arabicaThis->getPrefix().c_str()); +} - bool V8Node::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +void V8Node::prefixAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localPrefix(value); + privData->arabicaThis->setPrefix(*localPrefix); +} -} -} +v8::Handle V8Node::localNameAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + return v8::String::New(privData->arabicaThis->getLocalName().c_str()); +} +v8::Handle V8Node::insertBeforeCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in insertBefore"); + if (!((V8Node::hasInstance(args[0])) && (V8Node::hasInstance(args[1])))) + throw V8Exception("Parameter mismatch while calling insertBefore"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + Arabica::DOM::Node* localRefChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->arabicaThis; + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->insertBefore(*localNewChild, *localRefChild)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + +} + +v8::Handle V8Node::replaceChildCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in replaceChild"); + if (!((V8Node::hasInstance(args[0])) && (V8Node::hasInstance(args[1])))) + throw V8Exception("Parameter mismatch while calling replaceChild"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[1]->ToObject()->GetInternalField(0))->arabicaThis; + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->replaceChild(*localNewChild, *localOldChild)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + +} + +v8::Handle V8Node::removeChildCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in removeChild"); + if (!(V8Node::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling removeChild"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localOldChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->removeChild(*localOldChild)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + +} + +v8::Handle V8Node::appendChildCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in appendChild"); + if (!(V8Node::hasInstance(args[0]))) + throw V8Exception("Parameter mismatch while calling appendChild"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + Arabica::DOM::Node* localNewChild = V8DOM::toClassPtr(args[0]->ToObject()->GetInternalField(0))->arabicaThis; + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->appendChild(*localNewChild)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + +} + +v8::Handle V8Node::hasChildNodesCallback(const v8::Arguments& args) { + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + bool retVal = privData->arabicaThis->hasChildNodes(); + + return v8::Boolean::New(retVal); +} + +v8::Handle V8Node::cloneNodeCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in cloneNode"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + bool localDeep = args[0]->ToBoolean()->BooleanValue(); + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->cloneNode(localDeep)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + +} + +v8::Handle V8Node::normalizeCallback(const v8::Arguments& args) { + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + privData->arabicaThis->normalize(); + + return v8::Undefined(); +} + +v8::Handle V8Node::isSupportedCallback(const v8::Arguments& args) { + if (args.Length() < 2) + throw V8Exception("Wrong number of arguments in isSupported"); + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localFeature(args[0]); + v8::String::AsciiValue localVersion(args[1]); + + bool retVal = privData->arabicaThis->isSupported(*localFeature, *localVersion); + + return v8::Boolean::New(retVal); +} + +v8::Handle V8Node::hasAttributesCallback(const v8::Arguments& args) { + + v8::Local self = args.Holder(); + struct V8NodePrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + bool retVal = privData->arabicaThis->hasAttributes(); + + return v8::Boolean::New(retVal); +} + +bool V8Node::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} + +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.h index 094d57a..ee14dc9 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Node.h @@ -30,129 +30,129 @@ namespace DOM { class V8Node { public: - struct V8NodePrivate { - V8DOM* dom; - Arabica::DOM::Node* arabicaThis; - }; - - V8_DESTRUCTOR(V8NodePrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle insertBeforeCallback(const v8::Arguments&); - static v8::Handle replaceChildCallback(const v8::Arguments&); - static v8::Handle removeChildCallback(const v8::Arguments&); - static v8::Handle appendChildCallback(const v8::Arguments&); - static v8::Handle hasChildNodesCallback(const v8::Arguments&); - static v8::Handle cloneNodeCallback(const v8::Arguments&); - static v8::Handle normalizeCallback(const v8::Arguments&); - static v8::Handle isSupportedCallback(const v8::Arguments&); - static v8::Handle hasAttributesCallback(const v8::Arguments&); - - static v8::Handle nodeNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle nodeValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static void nodeValueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); - static v8::Handle nodeTypeAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle parentNodeAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle childNodesAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle firstChildAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle lastChildAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle previousSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle nextSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle attributesAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle ownerDocumentAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle namespaceURIAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle prefixAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static void prefixAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); - static v8::Handle localNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Node")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("nodeName"), V8Node::nodeNameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("nodeValue"), V8Node::nodeValueAttrGetter, V8Node::nodeValueAttrSetter, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("nodeType"), V8Node::nodeTypeAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("parentNode"), V8Node::parentNodeAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("childNodes"), V8Node::childNodesAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("firstChild"), V8Node::firstChildAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("lastChild"), V8Node::lastChildAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("previousSibling"), V8Node::previousSiblingAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("nextSibling"), V8Node::nextSiblingAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("attributes"), V8Node::attributesAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("ownerDocument"), V8Node::ownerDocumentAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("namespaceURI"), V8Node::namespaceURIAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("prefix"), V8Node::prefixAttrGetter, V8Node::prefixAttrSetter, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("localName"), V8Node::localNameAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("insertBefore"), - v8::FunctionTemplate::New(V8Node::insertBeforeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("replaceChild"), - v8::FunctionTemplate::New(V8Node::replaceChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("removeChild"), - v8::FunctionTemplate::New(V8Node::removeChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("appendChild"), - v8::FunctionTemplate::New(V8Node::appendChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("hasChildNodes"), - v8::FunctionTemplate::New(V8Node::hasChildNodesCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("cloneNode"), - v8::FunctionTemplate::New(V8Node::cloneNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("normalize"), - v8::FunctionTemplate::New(V8Node::normalizeCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("isSupported"), - v8::FunctionTemplate::New(V8Node::isSupportedCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("hasAttributes"), - v8::FunctionTemplate::New(V8Node::hasAttributesCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - tmpl->Set(v8::String::NewSymbol("ELEMENT_NODE"), v8::Integer::New(1), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("ELEMENT_NODE"), v8::Integer::New(1), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("ATTRIBUTE_NODE"), v8::Integer::New(2), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("ATTRIBUTE_NODE"), v8::Integer::New(2), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("TEXT_NODE"), v8::Integer::New(3), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("TEXT_NODE"), v8::Integer::New(3), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("CDATA_SECTION_NODE"), v8::Integer::New(4), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("CDATA_SECTION_NODE"), v8::Integer::New(4), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("ENTITY_REFERENCE_NODE"), v8::Integer::New(5), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("ENTITY_REFERENCE_NODE"), v8::Integer::New(5), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("ENTITY_NODE"), v8::Integer::New(6), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("ENTITY_NODE"), v8::Integer::New(6), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("PROCESSING_INSTRUCTION_NODE"), v8::Integer::New(7), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("PROCESSING_INSTRUCTION_NODE"), v8::Integer::New(7), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("COMMENT_NODE"), v8::Integer::New(8), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("COMMENT_NODE"), v8::Integer::New(8), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("DOCUMENT_NODE"), v8::Integer::New(9), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("DOCUMENT_NODE"), v8::Integer::New(9), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("DOCUMENT_TYPE_NODE"), v8::Integer::New(10), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("DOCUMENT_TYPE_NODE"), v8::Integer::New(10), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("DOCUMENT_FRAGMENT_NODE"), v8::Integer::New(11), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("DOCUMENT_FRAGMENT_NODE"), v8::Integer::New(11), v8::ReadOnly); - tmpl->Set(v8::String::NewSymbol("NOTATION_NODE"), v8::Integer::New(12), v8::ReadOnly); - prototype->Set(v8::String::NewSymbol("NOTATION_NODE"), v8::Integer::New(12), v8::ReadOnly); - - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8NodePrivate { + V8DOM* dom; + Arabica::DOM::Node* arabicaThis; + }; + + V8_DESTRUCTOR(V8NodePrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle insertBeforeCallback(const v8::Arguments&); + static v8::Handle replaceChildCallback(const v8::Arguments&); + static v8::Handle removeChildCallback(const v8::Arguments&); + static v8::Handle appendChildCallback(const v8::Arguments&); + static v8::Handle hasChildNodesCallback(const v8::Arguments&); + static v8::Handle cloneNodeCallback(const v8::Arguments&); + static v8::Handle normalizeCallback(const v8::Arguments&); + static v8::Handle isSupportedCallback(const v8::Arguments&); + static v8::Handle hasAttributesCallback(const v8::Arguments&); + + static v8::Handle nodeNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle nodeValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static void nodeValueAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); + static v8::Handle nodeTypeAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle parentNodeAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle childNodesAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle firstChildAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle lastChildAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle previousSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle nextSiblingAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle attributesAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle ownerDocumentAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle namespaceURIAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle prefixAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static void prefixAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); + static v8::Handle localNameAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Node")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("nodeName"), V8Node::nodeNameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("nodeValue"), V8Node::nodeValueAttrGetter, V8Node::nodeValueAttrSetter, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("nodeType"), V8Node::nodeTypeAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("parentNode"), V8Node::parentNodeAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("childNodes"), V8Node::childNodesAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("firstChild"), V8Node::firstChildAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("lastChild"), V8Node::lastChildAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("previousSibling"), V8Node::previousSiblingAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("nextSibling"), V8Node::nextSiblingAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("attributes"), V8Node::attributesAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("ownerDocument"), V8Node::ownerDocumentAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("namespaceURI"), V8Node::namespaceURIAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("prefix"), V8Node::prefixAttrGetter, V8Node::prefixAttrSetter, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("localName"), V8Node::localNameAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("insertBefore"), + v8::FunctionTemplate::New(V8Node::insertBeforeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("replaceChild"), + v8::FunctionTemplate::New(V8Node::replaceChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("removeChild"), + v8::FunctionTemplate::New(V8Node::removeChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("appendChild"), + v8::FunctionTemplate::New(V8Node::appendChildCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("hasChildNodes"), + v8::FunctionTemplate::New(V8Node::hasChildNodesCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("cloneNode"), + v8::FunctionTemplate::New(V8Node::cloneNodeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("normalize"), + v8::FunctionTemplate::New(V8Node::normalizeCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("isSupported"), + v8::FunctionTemplate::New(V8Node::isSupportedCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("hasAttributes"), + v8::FunctionTemplate::New(V8Node::hasAttributesCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + tmpl->Set(v8::String::NewSymbol("ELEMENT_NODE"), v8::Integer::New(1), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("ELEMENT_NODE"), v8::Integer::New(1), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("ATTRIBUTE_NODE"), v8::Integer::New(2), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("ATTRIBUTE_NODE"), v8::Integer::New(2), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("TEXT_NODE"), v8::Integer::New(3), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("TEXT_NODE"), v8::Integer::New(3), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("CDATA_SECTION_NODE"), v8::Integer::New(4), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("CDATA_SECTION_NODE"), v8::Integer::New(4), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("ENTITY_REFERENCE_NODE"), v8::Integer::New(5), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("ENTITY_REFERENCE_NODE"), v8::Integer::New(5), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("ENTITY_NODE"), v8::Integer::New(6), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("ENTITY_NODE"), v8::Integer::New(6), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("PROCESSING_INSTRUCTION_NODE"), v8::Integer::New(7), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("PROCESSING_INSTRUCTION_NODE"), v8::Integer::New(7), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("COMMENT_NODE"), v8::Integer::New(8), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("COMMENT_NODE"), v8::Integer::New(8), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("DOCUMENT_NODE"), v8::Integer::New(9), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("DOCUMENT_NODE"), v8::Integer::New(9), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("DOCUMENT_TYPE_NODE"), v8::Integer::New(10), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("DOCUMENT_TYPE_NODE"), v8::Integer::New(10), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("DOCUMENT_FRAGMENT_NODE"), v8::Integer::New(11), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("DOCUMENT_FRAGMENT_NODE"), v8::Integer::New(11), v8::ReadOnly); + tmpl->Set(v8::String::NewSymbol("NOTATION_NODE"), v8::Integer::New(12), v8::ReadOnly); + prototype->Set(v8::String::NewSymbol("NOTATION_NODE"), v8::Integer::New(12), v8::ReadOnly); + + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.cpp index d1d0125..1f6b368 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.cpp @@ -4,41 +4,41 @@ namespace Arabica { namespace DOM { - v8::Persistent V8NodeList::Tmpl; +v8::Persistent V8NodeList::Tmpl; - v8::Handle V8NodeList::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodeListPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8NodeList::lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodeListPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Integer::New(privData->arabicaThis->getLength()); - } - v8::Handle V8NodeList::itemCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in item"); + return v8::Integer::New(privData->arabicaThis->getLength()); +} +v8::Handle V8NodeList::itemCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in item"); - v8::Local self = args.Holder(); - V8NodeListPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localIndex = args[0]->ToNumber()->Uint32Value(); + v8::Local self = args.Holder(); + struct V8NodeListPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localIndex = args[0]->ToNumber()->Uint32Value(); - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->item(localIndex)); - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->item(localIndex)); + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; - } +} - bool V8NodeList::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8NodeList::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.h index b70bc0e..fefc084 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeList.h @@ -30,40 +30,40 @@ namespace DOM { class V8NodeList { public: - struct V8NodeListPrivate { - V8DOM* dom; - Arabica::DOM::NodeList* arabicaThis; - }; + struct V8NodeListPrivate { + V8DOM* dom; + Arabica::DOM::NodeList* arabicaThis; + }; - V8_DESTRUCTOR(V8NodeListPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8NodeListPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle itemCallback(const v8::Arguments&); + static v8::Handle itemCallback(const v8::Arguments&); - static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle lengthAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("NodeList")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("NodeList")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - instance->SetAccessor(v8::String::NewSymbol("length"), V8NodeList::lengthAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("length"), V8NodeList::lengthAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - prototype->Set(v8::String::NewSymbol("item"), - v8::FunctionTemplate::New(V8NodeList::itemCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("item"), + v8::FunctionTemplate::New(V8NodeList::itemCallback, v8::Undefined()), static_cast(v8::DontDelete)); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.cpp index 8421d2e..2b051f1 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.cpp @@ -3,35 +3,35 @@ namespace Arabica { namespace DOM { - v8::Persistent V8NodeSet::Tmpl; +v8::Persistent V8NodeSet::Tmpl; - v8::Handle V8NodeSet::sizeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8NodeSet::sizeAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Integer::New(privData->arabicaThis->size()); - } + return v8::Integer::New(privData->arabicaThis->size()); +} - v8::Handle V8NodeSet::emptyAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8NodeSet::emptyAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Boolean::New(privData->arabicaThis->empty()); - } - v8::Handle V8NodeSet::toDocumentOrderCallback(const v8::Arguments& args) { + return v8::Boolean::New(privData->arabicaThis->empty()); +} +v8::Handle V8NodeSet::toDocumentOrderCallback(const v8::Arguments& args) { - v8::Local self = args.Holder(); - V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::Local self = args.Holder(); + struct V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - privData->arabicaThis->to_document_order(); + privData->arabicaThis->to_document_order(); - return v8::Undefined(); - } + return v8::Undefined(); +} - bool V8NodeSet::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8NodeSet::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.h index 6650b8d..583c1b9 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSet.h @@ -30,45 +30,45 @@ namespace DOM { class V8NodeSet { public: - struct V8NodeSetPrivate { - V8DOM* dom; - Arabica::XPath::NodeSet* arabicaThis; - }; + struct V8NodeSetPrivate { + V8DOM* dom; + Arabica::XPath::NodeSet* arabicaThis; + }; - V8_DESTRUCTOR(V8NodeSetPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8NodeSetPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle toDocumentOrderCallback(const v8::Arguments&); + static v8::Handle toDocumentOrderCallback(const v8::Arguments&); - static v8::Handle sizeAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle emptyAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle indexedPropertyCustomGetter(uint32_t, const v8::AccessorInfo&); + static v8::Handle sizeAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle emptyAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle indexedPropertyCustomGetter(uint32_t, const v8::AccessorInfo&); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("NodeSet")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("NodeSet")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - instance->SetAccessor(v8::String::NewSymbol("size"), V8NodeSet::sizeAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("empty"), V8NodeSet::emptyAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("size"), V8NodeSet::sizeAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("empty"), V8NodeSet::emptyAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetIndexedPropertyHandler(V8NodeSet::indexedPropertyCustomGetter, 0); - prototype->Set(v8::String::NewSymbol("toDocumentOrder"), - v8::FunctionTemplate::New(V8NodeSet::toDocumentOrderCallback, v8::Undefined()), static_cast(v8::DontDelete)); + instance->SetIndexedPropertyHandler(V8NodeSet::indexedPropertyCustomGetter, 0); + prototype->Set(v8::String::NewSymbol("toDocumentOrder"), + v8::FunctionTemplate::New(V8NodeSet::toDocumentOrderCallback, v8::Undefined()), static_cast(v8::DontDelete)); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSetCustom.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSetCustom.cpp index 4904878..61f5947 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSetCustom.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8NodeSetCustom.cpp @@ -6,46 +6,46 @@ namespace Arabica { namespace DOM { v8::Handle V8NodeSet::indexedPropertyCustomGetter(uint32_t index, const v8::AccessorInfo &info) { - v8::Local self = info.Holder(); - V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - if (privData->arabicaThis->size() >= index) { - switch((*privData->arabicaThis)[index].getNodeType()) { - case Node_base::ELEMENT_NODE: { - Arabica::DOM::Element* retVal = new Arabica::DOM::Element((*privData->arabicaThis)[index]); - - v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - - struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; - - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - - retObj.MakeWeak(0, V8Element::jsDestructor); - return retObj; - } - default: { - Arabica::DOM::Node* retVal = new Arabica::DOM::Node((*privData->arabicaThis)[index]); - - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; - - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; - } - } - } - - return v8::Undefined(); - + v8::Local self = info.Holder(); + V8NodeSetPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + if (privData->arabicaThis->size() >= index) { + switch((*privData->arabicaThis)[index].getNodeType()) { + case Node_base::ELEMENT_NODE: { + Arabica::DOM::Element* retVal = new Arabica::DOM::Element((*privData->arabicaThis)[index]); + + v8::Handle retCtor = V8Element::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Element::V8ElementPrivate* retPrivData = new V8Element::V8ElementPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Element::jsDestructor); + return retObj; + } + default: { + Arabica::DOM::Node* retVal = new Arabica::DOM::Node((*privData->arabicaThis)[index]); + + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; + } + } + } + + return v8::Undefined(); + } } diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.cpp index 0e9d5f6..e210491 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.cpp @@ -4,25 +4,25 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Notation::Tmpl; +v8::Persistent V8Notation::Tmpl; - v8::Handle V8Notation::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NotationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Notation::publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NotationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getPublicId().c_str()); - } + return v8::String::New(privData->arabicaThis->getPublicId().c_str()); +} - v8::Handle V8Notation::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8NotationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8Notation::systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8NotationPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getSystemId().c_str()); - } - bool V8Notation::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } + return v8::String::New(privData->arabicaThis->getSystemId().c_str()); +} +bool V8Notation::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.h index edf7c44..f29d1fe 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Notation.h @@ -31,41 +31,41 @@ namespace DOM { class V8Notation { public: - struct V8NotationPrivate { - V8DOM* dom; - Arabica::DOM::Notation* arabicaThis; - }; + struct V8NotationPrivate { + V8DOM* dom; + Arabica::DOM::Notation* arabicaThis; + }; - V8_DESTRUCTOR(V8NotationPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8NotationPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle publicIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle systemIdAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Notation")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Notation")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - instance->SetAccessor(v8::String::NewSymbol("publicId"), V8Notation::publicIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("systemId"), V8Notation::systemIdAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("publicId"), V8Notation::publicIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("systemId"), V8Notation::systemIdAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.cpp index 09ba4fe..c299d76 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.cpp @@ -4,32 +4,32 @@ namespace Arabica { namespace DOM { - v8::Persistent V8ProcessingInstruction::Tmpl; +v8::Persistent V8ProcessingInstruction::Tmpl; - v8::Handle V8ProcessingInstruction::targetAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8ProcessingInstruction::targetAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getTarget().c_str()); - } + return v8::String::New(privData->arabicaThis->getTarget().c_str()); +} - v8::Handle V8ProcessingInstruction::dataAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8ProcessingInstruction::dataAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->getData().c_str()); - } + return v8::String::New(privData->arabicaThis->getData().c_str()); +} - void V8ProcessingInstruction::dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - v8::String::AsciiValue localData(value); - privData->arabicaThis->setData(*localData); - } - bool V8ProcessingInstruction::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +void V8ProcessingInstruction::dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8ProcessingInstructionPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::String::AsciiValue localData(value); + privData->arabicaThis->setData(*localData); +} +bool V8ProcessingInstruction::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.h index 7793a72..61eaa2e 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8ProcessingInstruction.h @@ -31,42 +31,42 @@ namespace DOM { class V8ProcessingInstruction { public: - struct V8ProcessingInstructionPrivate { - V8DOM* dom; - Arabica::DOM::ProcessingInstruction* arabicaThis; - }; + struct V8ProcessingInstructionPrivate { + V8DOM* dom; + Arabica::DOM::ProcessingInstruction* arabicaThis; + }; - V8_DESTRUCTOR(V8ProcessingInstructionPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8ProcessingInstructionPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle targetAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle dataAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static void dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); + static v8::Handle targetAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle dataAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static void dataAttrSetter(v8::Local property, v8::Local value, const v8::AccessorInfo& info); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("ProcessingInstruction")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("ProcessingInstruction")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - instance->SetAccessor(v8::String::NewSymbol("target"), V8ProcessingInstruction::targetAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("data"), V8ProcessingInstruction::dataAttrGetter, V8ProcessingInstruction::dataAttrSetter, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("target"), V8ProcessingInstruction::targetAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("data"), V8ProcessingInstruction::dataAttrGetter, V8ProcessingInstruction::dataAttrSetter, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - tmpl->Inherit(V8Node::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8Node::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.cpp index 70411f9..fd9f6a3 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.cpp @@ -4,34 +4,34 @@ namespace Arabica { namespace DOM { - v8::Persistent V8Text::Tmpl; +v8::Persistent V8Text::Tmpl; - v8::Handle V8Text::splitTextCallback(const v8::Arguments& args) { - if (args.Length() < 1) - throw V8Exception("Wrong number of arguments in splitText"); +v8::Handle V8Text::splitTextCallback(const v8::Arguments& args) { + if (args.Length() < 1) + throw V8Exception("Wrong number of arguments in splitText"); - v8::Local self = args.Holder(); - V8TextPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); + v8::Local self = args.Holder(); + struct V8TextPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + unsigned long localOffset = args[0]->ToNumber()->Uint32Value(); - Arabica::DOM::Text* retVal = new Arabica::DOM::Text(privData->arabicaThis->splitText(localOffset)); - v8::Handle retCtor = V8Text::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::DOM::Text* retVal = new Arabica::DOM::Text(privData->arabicaThis->splitText(localOffset)); + v8::Handle retCtor = V8Text::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8Text::V8TextPrivate* retPrivData = new V8Text::V8TextPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8Text::V8TextPrivate* retPrivData = new V8Text::V8TextPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8Text::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8Text::jsDestructor); + return retObj; - } +} - bool V8Text::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8Text::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.h index f8154ef..fdabf6e 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8Text.h @@ -31,38 +31,38 @@ namespace DOM { class V8Text { public: - struct V8TextPrivate { - V8DOM* dom; - Arabica::DOM::Text* arabicaThis; - }; + struct V8TextPrivate { + V8DOM* dom; + Arabica::DOM::Text* arabicaThis; + }; - V8_DESTRUCTOR(V8TextPrivate); - static bool hasInstance(v8::Handle); + V8_DESTRUCTOR(V8TextPrivate); + static bool hasInstance(v8::Handle); - static v8::Handle splitTextCallback(const v8::Arguments&); + static v8::Handle splitTextCallback(const v8::Arguments&); - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("Text")); - tmpl->ReadOnlyPrototype(); + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("Text")); + tmpl->ReadOnlyPrototype(); - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); - prototype->Set(v8::String::NewSymbol("splitText"), - v8::FunctionTemplate::New(V8Text::splitTextCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("splitText"), + v8::FunctionTemplate::New(V8Text::splitTextCallback, v8::Undefined()), static_cast(v8::DontDelete)); - tmpl->Inherit(V8CharacterData::getTmpl()); - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + tmpl->Inherit(V8CharacterData::getTmpl()); + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp index 6b7c077..0d6210f 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.cpp @@ -4,82 +4,82 @@ namespace Arabica { namespace DOM { - v8::Persistent V8XPathResult::Tmpl; +v8::Persistent V8XPathResult::Tmpl; - v8::Handle V8XPathResult::numberValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8XPathResult::numberValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Number::New(privData->arabicaThis->asNumber()); - } + return v8::Number::New(privData->arabicaThis->asNumber()); +} - v8::Handle V8XPathResult::stringValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8XPathResult::stringValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::String::New(privData->arabicaThis->asString().c_str()); - } + return v8::String::New(privData->arabicaThis->asString().c_str()); +} - v8::Handle V8XPathResult::booleanValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); +v8::Handle V8XPathResult::booleanValueAttrGetter(v8::Local property, const v8::AccessorInfo& info) { + v8::Local self = info.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - return v8::Boolean::New(privData->arabicaThis->asBool()); - } - v8::Handle V8XPathResult::asNodeSetCallback(const v8::Arguments& args) { + return v8::Boolean::New(privData->arabicaThis->asBool()); +} +v8::Handle V8XPathResult::asNodeSetCallback(const v8::Arguments& args) { - v8::Local self = args.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::Local self = args.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - Arabica::XPath::NodeSet* retVal = new Arabica::XPath::NodeSet(privData->arabicaThis->asNodeSet()); - v8::Handle retCtor = V8NodeSet::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + Arabica::XPath::NodeSet* retVal = new Arabica::XPath::NodeSet(privData->arabicaThis->asNodeSet()); + v8::Handle retCtor = V8NodeSet::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - struct V8NodeSet::V8NodeSetPrivate* retPrivData = new V8NodeSet::V8NodeSetPrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; + struct V8NodeSet::V8NodeSetPrivate* retPrivData = new V8NodeSet::V8NodeSetPrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - retObj.MakeWeak(0, V8NodeSet::jsDestructor); - return retObj; + retObj.MakeWeak(0, V8NodeSet::jsDestructor); + return retObj; - } +} - v8::Handle V8XPathResult::asBoolCallback(const v8::Arguments& args) { +v8::Handle V8XPathResult::asBoolCallback(const v8::Arguments& args) { - v8::Local self = args.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::Local self = args.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - bool retVal = privData->arabicaThis->asBool(); + bool retVal = privData->arabicaThis->asBool(); - return v8::Boolean::New(retVal); - } + return v8::Boolean::New(retVal); +} - v8::Handle V8XPathResult::asStringCallback(const v8::Arguments& args) { +v8::Handle V8XPathResult::asStringCallback(const v8::Arguments& args) { - v8::Local self = args.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::Local self = args.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - std::string retVal = privData->arabicaThis->asString(); + std::string retVal = privData->arabicaThis->asString(); - return v8::String::New(retVal.c_str()); - } + return v8::String::New(retVal.c_str()); +} - v8::Handle V8XPathResult::asNumberCallback(const v8::Arguments& args) { +v8::Handle V8XPathResult::asNumberCallback(const v8::Arguments& args) { - v8::Local self = args.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + v8::Local self = args.Holder(); + struct V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - double retVal = privData->arabicaThis->asNumber(); + double retVal = privData->arabicaThis->asNumber(); - return v8::Number::New(retVal); - } + return v8::Number::New(retVal); +} - bool V8XPathResult::hasInstance(v8::Handle value) { - return getTmpl()->HasInstance(value); - } +bool V8XPathResult::hasInstance(v8::Handle value) { + return getTmpl()->HasInstance(value); +} -} -} +} +} diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.h b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.h index 76c6913..96410df 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResult.h @@ -30,58 +30,58 @@ namespace DOM { class V8XPathResult { public: - struct V8XPathResultPrivate { - V8DOM* dom; - Arabica::XPath::XPathValue* arabicaThis; - }; - - V8_DESTRUCTOR(V8XPathResultPrivate); - static bool hasInstance(v8::Handle); - - static v8::Handle asNodeSetCallback(const v8::Arguments&); - static v8::Handle asBoolCallback(const v8::Arguments&); - static v8::Handle asStringCallback(const v8::Arguments&); - static v8::Handle asNumberCallback(const v8::Arguments&); - - static v8::Handle numberValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle stringValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle booleanValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); - static v8::Handle singleNodeValueCustomAttrGetter(v8::Local property, const v8::AccessorInfo& info); - - static v8::Persistent Tmpl; - static v8::Handle getTmpl() { - if (Tmpl.IsEmpty()) { - v8::Handle tmpl = v8::FunctionTemplate::New(); - tmpl->SetClassName(v8::String::New("XPathResult")); - tmpl->ReadOnlyPrototype(); - - v8::Local instance = tmpl->InstanceTemplate(); - v8::Local prototype = tmpl->PrototypeTemplate(); - instance->SetInternalFieldCount(1); - - instance->SetAccessor(v8::String::NewSymbol("numberValue"), V8XPathResult::numberValueAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("stringValue"), V8XPathResult::stringValueAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("booleanValue"), V8XPathResult::booleanValueAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - instance->SetAccessor(v8::String::NewSymbol("singleNodeValue"), V8XPathResult::singleNodeValueCustomAttrGetter, 0, - v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); - - prototype->Set(v8::String::NewSymbol("asNodeSet"), - v8::FunctionTemplate::New(V8XPathResult::asNodeSetCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("asBool"), - v8::FunctionTemplate::New(V8XPathResult::asBoolCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("asString"), - v8::FunctionTemplate::New(V8XPathResult::asStringCallback, v8::Undefined()), static_cast(v8::DontDelete)); - prototype->Set(v8::String::NewSymbol("asNumber"), - v8::FunctionTemplate::New(V8XPathResult::asNumberCallback, v8::Undefined()), static_cast(v8::DontDelete)); - - - Tmpl = v8::Persistent::New(tmpl); - } - return Tmpl; - } + struct V8XPathResultPrivate { + V8DOM* dom; + Arabica::XPath::XPathValue* arabicaThis; + }; + + V8_DESTRUCTOR(V8XPathResultPrivate); + static bool hasInstance(v8::Handle); + + static v8::Handle asNodeSetCallback(const v8::Arguments&); + static v8::Handle asBoolCallback(const v8::Arguments&); + static v8::Handle asStringCallback(const v8::Arguments&); + static v8::Handle asNumberCallback(const v8::Arguments&); + + static v8::Handle numberValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle stringValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle booleanValueAttrGetter(v8::Local property, const v8::AccessorInfo& info); + static v8::Handle singleNodeValueCustomAttrGetter(v8::Local property, const v8::AccessorInfo& info); + + static v8::Persistent Tmpl; + static v8::Handle getTmpl() { + if (Tmpl.IsEmpty()) { + v8::Handle tmpl = v8::FunctionTemplate::New(); + tmpl->SetClassName(v8::String::New("XPathResult")); + tmpl->ReadOnlyPrototype(); + + v8::Local instance = tmpl->InstanceTemplate(); + v8::Local prototype = tmpl->PrototypeTemplate(); + instance->SetInternalFieldCount(1); + + instance->SetAccessor(v8::String::NewSymbol("numberValue"), V8XPathResult::numberValueAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("stringValue"), V8XPathResult::stringValueAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("booleanValue"), V8XPathResult::booleanValueAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + instance->SetAccessor(v8::String::NewSymbol("singleNodeValue"), V8XPathResult::singleNodeValueCustomAttrGetter, 0, + v8::External::New(0), static_cast(v8::DEFAULT), static_cast(v8::None)); + + prototype->Set(v8::String::NewSymbol("asNodeSet"), + v8::FunctionTemplate::New(V8XPathResult::asNodeSetCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("asBool"), + v8::FunctionTemplate::New(V8XPathResult::asBoolCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("asString"), + v8::FunctionTemplate::New(V8XPathResult::asStringCallback, v8::Undefined()), static_cast(v8::DontDelete)); + prototype->Set(v8::String::NewSymbol("asNumber"), + v8::FunctionTemplate::New(V8XPathResult::asNumberCallback, v8::Undefined()), static_cast(v8::DontDelete)); + + + Tmpl = v8::Persistent::New(tmpl); + } + return Tmpl; + } }; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResultCustom.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResultCustom.cpp index 6ec0f85..38b2cb5 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResultCustom.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/dom/V8XPathResultCustom.cpp @@ -5,22 +5,22 @@ namespace Arabica { namespace DOM { v8::Handle V8XPathResult::singleNodeValueCustomAttrGetter(v8::Local property, const v8::AccessorInfo& info) { - v8::Local self = info.Holder(); - V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); - - Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->asNodeSet()[0]); - - v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); - v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); - - struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); - retPrivData->dom = privData->dom; - retPrivData->arabicaThis = retVal; - - retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); - - retObj.MakeWeak(0, V8Node::jsDestructor); - return retObj; + v8::Local self = info.Holder(); + V8XPathResultPrivate* privData = V8DOM::toClassPtr(self->GetInternalField(0)); + + Arabica::DOM::Node* retVal = new Arabica::DOM::Node(privData->arabicaThis->asNodeSet()[0]); + + v8::Handle retCtor = V8Node::getTmpl()->GetFunction(); + v8::Persistent retObj = v8::Persistent::New(retCtor->NewInstance()); + + struct V8Node::V8NodePrivate* retPrivData = new V8Node::V8NodePrivate(); + retPrivData->dom = privData->dom; + retPrivData->arabicaThis = retVal; + + retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); + + retObj.MakeWeak(0, V8Node::jsDestructor); + return retObj; } } diff --git a/src/uscxml/plugins/datamodel/prolog/swi/SWIDataModel.cpp b/src/uscxml/plugins/datamodel/prolog/swi/SWIDataModel.cpp index ffb48f9..fe881dc 100644 --- a/src/uscxml/plugins/datamodel/prolog/swi/SWIDataModel.cpp +++ b/src/uscxml/plugins/datamodel/prolog/swi/SWIDataModel.cpp @@ -25,22 +25,23 @@ boost::shared_ptr SWIDataModel::create(Interpreter* interpreter) boost::shared_ptr dm = boost::shared_ptr(new SWIDataModel()); dm->_interpreter = interpreter; - const char* swibin = getenv("SWI_BINARY"); - if (swibin == NULL) - swibin = SWI_BINARY; - const char* quiet = "--quiet"; - - static char * av[] = { - (char*)swibin, - (char*)quiet, - // "-s", - // "/Users/sradomski/Documents/TK/Code/pl-devel/demo/likes.pl", - NULL}; - if(!PL_initialise(2,av)) { - LOG(ERROR) << "Error intializing prolog engine"; - PL_halt(1); - return boost::shared_ptr(); - } + const char* swibin = getenv("SWI_BINARY"); + if (swibin == NULL) + swibin = SWI_BINARY; + const char* quiet = "--quiet"; + + static char * av[] = { + (char*)swibin, + (char*)quiet, + // "-s", + // "/Users/sradomski/Documents/TK/Code/pl-devel/demo/likes.pl", + NULL + }; + if(!PL_initialise(2,av)) { + LOG(ERROR) << "Error intializing prolog engine"; + PL_halt(1); + return boost::shared_ptr(); + } return dm; } @@ -96,49 +97,49 @@ uint32_t SWIDataModel::getLength(const std::string& expr) { } void SWIDataModel::eval(const std::string& expr) { - URL localPLFile = URL::toLocalFile(expr, ".pl"); - PlCall("user", "load_files", PlTermv(localPLFile.asLocalFile(".pl").c_str())) || LOG(ERROR) << "Could not execute prolog from file"; + URL localPLFile = URL::toLocalFile(expr, ".pl"); + PlCall("user", "load_files", PlTermv(localPLFile.asLocalFile(".pl").c_str())) || LOG(ERROR) << "Could not execute prolog from file"; } bool SWIDataModel::evalAsBool(const std::string& expr) { - PlCompound compound(expr.c_str()); - PlTermv termv(compound.arity()); - for (int i = 0; i < compound.arity(); i++) { - termv[i] = compound[i + 1]; - } - PlQuery query(compound.name(), termv); - return query.next_solution() > 0; + PlCompound compound(expr.c_str()); + PlTermv termv(compound.arity()); + for (int i = 0; i < compound.arity(); i++) { + termv[i] = compound[i + 1]; + } + PlQuery query(compound.name(), termv); + return query.next_solution() > 0; } std::string SWIDataModel::evalAsString(const std::string& expr) { - PlCompound compound(expr.c_str()); - if (strlen(compound.name())) { - PlTermv termv(compound.arity()); - for (int i = 0; i < compound.arity(); i++) { - termv[i] = compound[i + 1]; - } - PlQuery query(compound.name(), termv); - - std::stringstream ss; - while (query.next_solution()) { - for (int i = 0; i < compound.arity(); i++) { - const char* separator = ""; - ss << separator << (char *)termv[i]; - separator = ", "; - } - ss << std::endl; - } - return ss.str(); - } + PlCompound compound(expr.c_str()); + if (strlen(compound.name())) { + PlTermv termv(compound.arity()); + for (int i = 0; i < compound.arity(); i++) { + termv[i] = compound[i + 1]; + } + PlQuery query(compound.name(), termv); + + std::stringstream ss; + while (query.next_solution()) { + for (int i = 0; i < compound.arity(); i++) { + const char* separator = ""; + ss << separator << (char *)termv[i]; + separator = ", "; + } + ss << std::endl; + } + return ss.str(); + } return std::string(compound); } void SWIDataModel::assign(const std::string& location, const Data& data) { - eval(data.atom); + eval(data.atom); } void SWIDataModel::assign(const std::string& location, const std::string& expr) { - eval(expr); + eval(expr); } } \ No newline at end of file diff --git a/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.cpp b/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.cpp index d7e247b..6d2a8e2 100644 --- a/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.cpp +++ b/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.cpp @@ -11,117 +11,116 @@ CompositeDisplay::CompositeDisplay(unsigned int x, unsigned int y, unsigned int width, unsigned int height, - int screenId) -{ - _waitForViewOp = false; - unsigned int tWidth = 0; - unsigned int tHeight = 0; - getResolution(tWidth, tHeight, screenId); - - osg::ref_ptr traits = new osg::GraphicsContext::Traits; - traits->doubleBuffer = true; - traits->sharedContext = 0; - traits->screenNum = screenId; - - if (width == 0 || height == 0 || (width == tWidth && height == tHeight)) { - // fullscreen - traits->windowDecoration = false; - traits->width = tWidth; - traits->height = tHeight; - traits->x = 0; - traits->y = 0; - } else { - // Start with given resolution - traits->windowDecoration = true; - traits->x = x; - traits->y = y; - traits->width = width; - traits->height = height; - } - - _gc = osg::GraphicsContext::createGraphicsContext(traits.get()); - if (_gc.valid()) { - _gc->setClearColor(osg::Vec4f(1.0f,1.0f,1.0f,1.0f)); - _gc->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - } - - _width = traits->width; - _height = traits->height; - - setRunMaxFrameRate(30); + int screenId) { + _waitForViewOp = false; + unsigned int tWidth = 0; + unsigned int tHeight = 0; + getResolution(tWidth, tHeight, screenId); + + osg::ref_ptr traits = new osg::GraphicsContext::Traits; + traits->doubleBuffer = true; + traits->sharedContext = 0; + traits->screenNum = screenId; + + if (width == 0 || height == 0 || (width == tWidth && height == tHeight)) { + // fullscreen + traits->windowDecoration = false; + traits->width = tWidth; + traits->height = tHeight; + traits->x = 0; + traits->y = 0; + } else { + // Start with given resolution + traits->windowDecoration = true; + traits->x = x; + traits->y = y; + traits->width = width; + traits->height = height; + } + + _gc = osg::GraphicsContext::createGraphicsContext(traits.get()); + if (_gc.valid()) { + _gc->setClearColor(osg::Vec4f(1.0f,1.0f,1.0f,1.0f)); + _gc->setClearMask(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + + _width = traits->width; + _height = traits->height; + + setRunMaxFrameRate(30); // setRunFrameScheme(osgViewer::ViewerBase::ON_DEMAND); - setThreadingModel(osgViewer::Viewer::AutomaticSelection); + setThreadingModel(osgViewer::Viewer::AutomaticSelection); } CompositeDisplay::~CompositeDisplay() {} void CompositeDisplay::frame(double simulationTime) { - tthread::lock_guard lock(_mutex); - CompositeViewer::frame(); + tthread::lock_guard lock(_mutex); + CompositeViewer::frame(); } bool CompositeDisplay::checkNeedToDoFrame() { - return CompositeViewer::checkNeedToDoFrame(); + return CompositeViewer::checkNeedToDoFrame(); } void CompositeDisplay::addView(const std::string& name, osg::Viewport* v, osgViewer::View* view) { - tthread::lock_guard lock(_mutex); + tthread::lock_guard lock(_mutex); _viewports[name] = v; - + _views[name] = view; _views[name]->setName(name); - _views[name]->getCamera()->setName(name); - _views[name]->setCameraManipulator(new osgGA::TrackballManipulator); - - // add the state manipulator - osg::ref_ptr statesetManipulator = new osgGA::StateSetManipulator; - statesetManipulator->setStateSet(_views[name]->getCamera()->getOrCreateStateSet()); - _views[name]->addEventHandler( statesetManipulator.get() ); + _views[name]->getCamera()->setName(name); + _views[name]->setCameraManipulator(new osgGA::TrackballManipulator); + + // add the state manipulator + osg::ref_ptr statesetManipulator = new osgGA::StateSetManipulator; + statesetManipulator->setStateSet(_views[name]->getCamera()->getOrCreateStateSet()); + _views[name]->addEventHandler( statesetManipulator.get() ); _views[name]->addEventHandler( new osgViewer::StatsHandler ); _views[name]->addEventHandler( new osgViewer::HelpHandler ); _views[name]->addEventHandler( new osgViewer::WindowSizeHandler ); _views[name]->addEventHandler( new osgViewer::ThreadingHandler ); - - _views[name]->getCamera()->setViewport(v); - - // set graphic context - _views[name]->getCamera()->setGraphicsContext(_gc.get()); - CompositeViewer::addView(_views[name]); + + _views[name]->getCamera()->setViewport(v); + + // set graphic context + _views[name]->getCamera()->setGraphicsContext(_gc.get()); + CompositeViewer::addView(_views[name]); } -void CompositeDisplay::moveView(const std::string& name, osg::Viewport* v) { - tthread::lock_guard lock(_mutex); - const osg::GraphicsContext::Traits* traits = _gc->getTraits(); - osg::Viewport* absoluteVp = new osg::Viewport(v->x() * (traits->width/100.0), - v->y() * (traits->height/100.0), - v->width() * (traits->width/100.0), - v->height() * (traits->height/100.0)); - _views[name]->getCamera()->setViewport(absoluteVp); +void CompositeDisplay::moveView(const std::string& name, osg::Viewport* v) { + tthread::lock_guard lock(_mutex); + const osg::GraphicsContext::Traits* traits = _gc->getTraits(); + osg::Viewport* absoluteVp = new osg::Viewport(v->x() * (traits->width/100.0), + v->y() * (traits->height/100.0), + v->width() * (traits->width/100.0), + v->height() * (traits->height/100.0)); + _views[name]->getCamera()->setViewport(absoluteVp); } void CompositeDisplay::removeView(const std::string& name) { - tthread::lock_guard lock(_mutex); - - _views[name]->getCamera()->setGraphicsContext(NULL); - _views[name]->getCamera()->setViewport(NULL); + tthread::lock_guard lock(_mutex); + + _views[name]->getCamera()->setGraphicsContext(NULL); + _views[name]->getCamera()->setViewport(NULL); CompositeViewer::removeView(_views[name]); - + if (_views.find(name) != _views.end()) { _views.erase(name); - } + } if (_viewports.find(name) != _viewports.end()) _viewports.erase(name); } osg::GraphicsContext::WindowingSystemInterface* CompositeDisplay::wsi = NULL; void CompositeDisplay::getResolution(unsigned int& width, unsigned int& height, int screenId) { - if (!wsi) - wsi = osg::GraphicsContext::getWindowingSystemInterface(); + if (!wsi) + wsi = osg::GraphicsContext::getWindowingSystemInterface(); if (wsi) { - wsi->getScreenResolution(osg::GraphicsContext::ScreenIdentifier(screenId), width, height); + wsi->getScreenResolution(osg::GraphicsContext::ScreenIdentifier(screenId), width, height); } else { width = 800; height = 600; diff --git a/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.h b/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.h index 0d08c7f..b524777 100644 --- a/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.h +++ b/src/uscxml/plugins/invoker/graphics/openscenegraph/CompositeDisplay.h @@ -11,36 +11,40 @@ #include class CompositeDisplay : public osgViewer::CompositeViewer { -public: - CompositeDisplay(unsigned int x, - unsigned int y, - unsigned int width, - unsigned int height, - int screenId); +public: + CompositeDisplay(unsigned int x, + unsigned int y, + unsigned int width, + unsigned int height, + int screenId); virtual ~CompositeDisplay(); - + virtual void addView(const std::string& name, osg::Viewport* v, osgViewer::View* view); - virtual void moveView(const std::string& name, osg::Viewport* v); + virtual void moveView(const std::string& name, osg::Viewport* v); virtual void removeView(const std::string& name); - - virtual void frame(double simulationTime); - virtual bool checkNeedToDoFrame(); - - int getWidth() { return _width; } - int getHeight() { return _height; } - - static void getResolution(unsigned int& width, unsigned int& height, int screenId); - + + virtual void frame(double simulationTime); + virtual bool checkNeedToDoFrame(); + + int getWidth() { + return _width; + } + int getHeight() { + return _height; + } + + static void getResolution(unsigned int& width, unsigned int& height, int screenId); + protected: - tthread::recursive_mutex _mutex; - tthread::condition_variable _monitor; - bool _waitForViewOp; + tthread::recursive_mutex _mutex; + tthread::condition_variable _monitor; + bool _waitForViewOp; std::map _views; std::map _viewports; - osg::ref_ptr _gc; + osg::ref_ptr _gc; - static osg::GraphicsContext::WindowingSystemInterface* wsi; - int _width, _height; + static osg::GraphicsContext::WindowingSystemInterface* wsi; + int _width, _height; }; diff --git a/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.cpp b/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.cpp index 08fc1f3..9e584c3 100644 --- a/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.cpp +++ b/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.cpp @@ -7,7 +7,7 @@ #endif namespace uscxml { - + #ifdef BUILD_AS_PLUGINS PLUMA_CONNECTOR bool connect(pluma::Host& host) { @@ -15,7 +15,7 @@ bool connect(pluma::Host& host) { return true; } #endif - + OSGInvoker::OSGInvoker() { } @@ -43,288 +43,288 @@ void OSGInvoker::sendToParent(const SendRequest& req) { } void OSGInvoker::invoke(const InvokeRequest& req) { - tthread::lock_guard lock(_mutex); - - // register default event handlers - Arabica::DOM::Events::EventTarget evTarget = Arabica::DOM::Events::EventTarget(req.dom); - evTarget.addEventListener("DOMSubtreeModified", *this, false); - evTarget.addEventListener("DOMNodeInserted", *this, false); - evTarget.addEventListener("DOMNodeRemoved", *this, false); - evTarget.addEventListener("DOMAttrModified", *this, false); - - Arabica::XPath::NodeSet content = Interpreter::filterChildElements("content", req.dom); - - std::set validChilds; - validChilds.insert("display"); - processChildren(validChilds, content[0]); + tthread::lock_guard lock(_mutex); + + // register default event handlers + Arabica::DOM::Events::EventTarget evTarget = Arabica::DOM::Events::EventTarget(req.dom); + evTarget.addEventListener("DOMSubtreeModified", *this, false); + evTarget.addEventListener("DOMNodeInserted", *this, false); + evTarget.addEventListener("DOMNodeRemoved", *this, false); + evTarget.addEventListener("DOMAttrModified", *this, false); + + Arabica::XPath::NodeSet content = Interpreter::filterChildElements("content", req.dom); + + std::set validChilds; + validChilds.insert("display"); + processChildren(validChilds, content[0]); } void OSGInvoker::runOnMainThread() { - _displays_t::iterator dispIter = _displays.begin(); - if (_mutex.try_lock()) { - while(dispIter != _displays.end()) { - dispIter->second->osgViewer::ViewerBase::frame(); - dispIter++; - } - _mutex.unlock(); - } + _displays_t::iterator dispIter = _displays.begin(); + if (_mutex.try_lock()) { + while(dispIter != _displays.end()) { + dispIter->second->osgViewer::ViewerBase::frame(); + dispIter++; + } + _mutex.unlock(); + } } void OSGInvoker::handleEvent(Arabica::DOM::Events::Event& event) { // std::cout << "Handling Event!" << std::endl; - Arabica::DOM::Node node(event.getTarget()); - if (_nodes.find(node) != _nodes.end()) { - osg::Node* osgNode = _nodes[node]; - if (false) { - } else if (boost::iequals(LOCALNAME(node), "rotation")) { - updateRotation(osgNode, event); - } - } + Arabica::DOM::Node node(event.getTarget()); + if (_nodes.find(node) != _nodes.end()) { + osg::Node* osgNode = _nodes[node]; + if (false) { + } else if (boost::iequals(LOCALNAME(node), "rotation")) { + updateRotation(osgNode, event); + } + } } void OSGInvoker::processDisplay(const Arabica::DOM::Node& element) { // std::cout << element << std::endl; - if (_displays.find(element) == _displays.end()) { - - int screenId = 0; - unsigned int actualX = 0; - unsigned int actualY = 0; - unsigned int actualWidth = 0; - unsigned int actualHeight = 0; - getViewport(element, actualX, actualY, actualWidth, actualHeight, screenId); - - CompositeDisplay* compDisp = new CompositeDisplay(actualX, actualY, actualWidth, actualHeight, screenId); - _displays[element] = compDisp; - - std::set validChilds; - validChilds.insert("viewport"); - processChildren(validChilds, element); - } + if (_displays.find(element) == _displays.end()) { + + int screenId = 0; + unsigned int actualX = 0; + unsigned int actualY = 0; + unsigned int actualWidth = 0; + unsigned int actualHeight = 0; + getViewport(element, actualX, actualY, actualWidth, actualHeight, screenId); + + CompositeDisplay* compDisp = new CompositeDisplay(actualX, actualY, actualWidth, actualHeight, screenId); + _displays[element] = compDisp; + + std::set validChilds; + validChilds.insert("viewport"); + processChildren(validChilds, element); + } } void OSGInvoker::processViewport(const Arabica::DOM::Node& element) { - if (_displays.find(element.getParentNode()) == _displays.end()) - return; - - CompositeDisplay* compDisp = _displays[element.getParentNode()]; - osgViewer::View* sceneView = new osgViewer::View(); - _views[element] = sceneView; - - osg::Group* group = new osg::Group(); - _nodes[element] = group; - sceneView->setSceneData(group); - - std::string name = (HAS_ATTR(element, "id") ? ATTR(element, "id") : Interpreter::getUUID()); - - unsigned int actualX = 0; - unsigned int actualY = 0; - unsigned int actualWidth = 0; - unsigned int actualHeight = 0; - getViewport(element, actualX, actualY, actualWidth, actualHeight, compDisp); - - osg::Viewport* viewPort = new osg::Viewport(actualX, actualY, actualWidth, actualHeight); - compDisp->addView(name, viewPort, sceneView); - - std::set validChilds; - validChilds.insert("camera"); - validChilds.insert("translation"); - validChilds.insert("rotation"); - validChilds.insert("scale"); - validChilds.insert("node"); - processChildren(validChilds, element); + if (_displays.find(element.getParentNode()) == _displays.end()) + return; + + CompositeDisplay* compDisp = _displays[element.getParentNode()]; + osgViewer::View* sceneView = new osgViewer::View(); + _views[element] = sceneView; + + osg::Group* group = new osg::Group(); + _nodes[element] = group; + sceneView->setSceneData(group); + + std::string name = (HAS_ATTR(element, "id") ? ATTR(element, "id") : Interpreter::getUUID()); + + unsigned int actualX = 0; + unsigned int actualY = 0; + unsigned int actualWidth = 0; + unsigned int actualHeight = 0; + getViewport(element, actualX, actualY, actualWidth, actualHeight, compDisp); + + osg::Viewport* viewPort = new osg::Viewport(actualX, actualY, actualWidth, actualHeight); + compDisp->addView(name, viewPort, sceneView); + + std::set validChilds; + validChilds.insert("camera"); + validChilds.insert("translation"); + validChilds.insert("rotation"); + validChilds.insert("scale"); + validChilds.insert("node"); + processChildren(validChilds, element); } void OSGInvoker::processCamera(const Arabica::DOM::Node& element) {} void OSGInvoker::updateCamera(osg::Node* node, Arabica::DOM::Events::Event& event) {} void OSGInvoker::processTranslation(const Arabica::DOM::Node& element) { - assert(_nodes.find(element.getParentNode()) != _nodes.end()); - osg::Node* node = _nodes[element.getParentNode()]; - - double x = 0, y = 0, z = 0; - if (HAS_ATTR(element, "x")) - x = strTo(ATTR(element, "x")); - if (HAS_ATTR(element, "y")) - y = strTo(ATTR(element, "y")); - if (HAS_ATTR(element, "z")) - z = strTo(ATTR(element, "z")); - - osg::Matrix translate; - translate.makeTranslate(x, y, z); - - osg::MatrixTransform* transform = new osg::MatrixTransform(); - transform->setMatrix(translate); - node->asGroup()->addChild(transform); - _nodes[element] = transform; - - std::set validChilds; - validChilds.insert("translation"); - validChilds.insert("rotation"); - validChilds.insert("scale"); - validChilds.insert("node"); - processChildren(validChilds, element); + assert(_nodes.find(element.getParentNode()) != _nodes.end()); + osg::Node* node = _nodes[element.getParentNode()]; + + double x = 0, y = 0, z = 0; + if (HAS_ATTR(element, "x")) + x = strTo(ATTR(element, "x")); + if (HAS_ATTR(element, "y")) + y = strTo(ATTR(element, "y")); + if (HAS_ATTR(element, "z")) + z = strTo(ATTR(element, "z")); + + osg::Matrix translate; + translate.makeTranslate(x, y, z); + + osg::MatrixTransform* transform = new osg::MatrixTransform(); + transform->setMatrix(translate); + node->asGroup()->addChild(transform); + _nodes[element] = transform; + + std::set validChilds; + validChilds.insert("translation"); + validChilds.insert("rotation"); + validChilds.insert("scale"); + validChilds.insert("node"); + processChildren(validChilds, element); } void OSGInvoker::processRotation(const Arabica::DOM::Node& element) { - assert(_nodes.find(element.getParentNode()) != _nodes.end()); - osg::Node* node = _nodes[element.getParentNode()]; - - osg::Matrix rotation = rotationFromElement(element); - osg::MatrixTransform* transform = new osg::MatrixTransform(); - transform->setMatrix(rotation); - node->asGroup()->addChild(transform); - _nodes[element] = transform; - - std::set validChilds; - validChilds.insert("translation"); - validChilds.insert("rotation"); - validChilds.insert("scale"); - validChilds.insert("node"); - processChildren(validChilds, element); + assert(_nodes.find(element.getParentNode()) != _nodes.end()); + osg::Node* node = _nodes[element.getParentNode()]; + + osg::Matrix rotation = rotationFromElement(element); + osg::MatrixTransform* transform = new osg::MatrixTransform(); + transform->setMatrix(rotation); + node->asGroup()->addChild(transform); + _nodes[element] = transform; + + std::set validChilds; + validChilds.insert("translation"); + validChilds.insert("rotation"); + validChilds.insert("scale"); + validChilds.insert("node"); + processChildren(validChilds, element); } void OSGInvoker::updateRotation(osg::Node* node, Arabica::DOM::Events::Event& event) { - osg::MatrixTransform* transform = static_cast(node); - if (false) { - } else if (boost::iequals(event.getType(), "DOMAttrModified")) { - osg::Matrix rotation = rotationFromElement(Arabica::DOM::Node(event.getTarget())); - transform->setMatrix(rotation); - } + osg::MatrixTransform* transform = static_cast(node); + if (false) { + } else if (boost::iequals(event.getType(), "DOMAttrModified")) { + osg::Matrix rotation = rotationFromElement(Arabica::DOM::Node(event.getTarget())); + transform->setMatrix(rotation); + } } osg::Matrix OSGInvoker::rotationFromElement(const Arabica::DOM::Node& element) { - double pitch = 0, roll = 0, yaw = 0; - if (HAS_ATTR(element, "pitch")) { - NumAttr pitchAttr = NumAttr(ATTR(element, "pitch")); - if (boost::iequals(pitchAttr.unit, "deg")) { - pitch = osg::DegreesToRadians(strTo(pitchAttr.value)); - } else if (boost::iequals(pitchAttr.unit, "%")) { - pitch = osg::DegreesToRadians((strTo(pitchAttr.value) * 360) / 100); - } else { - pitch = strTo(pitchAttr.value); - } - } - if (HAS_ATTR(element, "roll")) { - NumAttr rollAttr = NumAttr(ATTR(element, "roll")); - if (boost::iequals(rollAttr.unit, "deg")) { - roll = osg::DegreesToRadians(strTo(rollAttr.value)); - } else if (boost::iequals(rollAttr.unit, "%")) { - roll = osg::DegreesToRadians((strTo(rollAttr.value) * 360) / 100); - } else { - roll = strTo(rollAttr.value); - } - } - if (HAS_ATTR(element, "yaw")) { - NumAttr yawAttr = NumAttr(ATTR(element, "yaw")); - if (boost::iequals(yawAttr.unit, "deg")) { - yaw = osg::DegreesToRadians(strTo(yawAttr.value)); - } else if (boost::iequals(yawAttr.unit, "%")) { - yaw = osg::DegreesToRadians((strTo(yawAttr.value) * 360) / 100); - } else { - yaw = strTo(yawAttr.value); - } - } - - osg::Matrix rotation; - rotation.makeRotate(roll, osg::Vec3(0,1,0), // roll - pitch, osg::Vec3(1,0,0) , // pitch - yaw, osg::Vec3(0,0,1) ); // heading - - return rotation; + double pitch = 0, roll = 0, yaw = 0; + if (HAS_ATTR(element, "pitch")) { + NumAttr pitchAttr = NumAttr(ATTR(element, "pitch")); + if (boost::iequals(pitchAttr.unit, "deg")) { + pitch = osg::DegreesToRadians(strTo(pitchAttr.value)); + } else if (boost::iequals(pitchAttr.unit, "%")) { + pitch = osg::DegreesToRadians((strTo(pitchAttr.value) * 360) / 100); + } else { + pitch = strTo(pitchAttr.value); + } + } + if (HAS_ATTR(element, "roll")) { + NumAttr rollAttr = NumAttr(ATTR(element, "roll")); + if (boost::iequals(rollAttr.unit, "deg")) { + roll = osg::DegreesToRadians(strTo(rollAttr.value)); + } else if (boost::iequals(rollAttr.unit, "%")) { + roll = osg::DegreesToRadians((strTo(rollAttr.value) * 360) / 100); + } else { + roll = strTo(rollAttr.value); + } + } + if (HAS_ATTR(element, "yaw")) { + NumAttr yawAttr = NumAttr(ATTR(element, "yaw")); + if (boost::iequals(yawAttr.unit, "deg")) { + yaw = osg::DegreesToRadians(strTo(yawAttr.value)); + } else if (boost::iequals(yawAttr.unit, "%")) { + yaw = osg::DegreesToRadians((strTo(yawAttr.value) * 360) / 100); + } else { + yaw = strTo(yawAttr.value); + } + } + + osg::Matrix rotation; + rotation.makeRotate(roll, osg::Vec3(0,1,0), // roll + pitch, osg::Vec3(1,0,0) , // pitch + yaw, osg::Vec3(0,0,1) ); // heading + + return rotation; } void OSGInvoker::processScale(const Arabica::DOM::Node& element) { - assert(_nodes.find(element.getParentNode()) != _nodes.end()); - osg::Node* node = _nodes[element.getParentNode()]; - - double x = 1, y = 1, z = 1; - if (HAS_ATTR(element, "x")) - x = strTo(ATTR(element, "x")); - if (HAS_ATTR(element, "y")) - y = strTo(ATTR(element, "y")); - if (HAS_ATTR(element, "z")) - z = strTo(ATTR(element, "z")); - - osg::Matrix scale; - scale.makeScale(x, y, z); - - osg::MatrixTransform* transform = new osg::MatrixTransform(); - transform->setMatrix(scale); - node->asGroup()->addChild(transform); - _nodes[element] = transform; - - std::set validChilds; - validChilds.insert("translation"); - validChilds.insert("rotation"); - validChilds.insert("scale"); - validChilds.insert("node"); - processChildren(validChilds, element); + assert(_nodes.find(element.getParentNode()) != _nodes.end()); + osg::Node* node = _nodes[element.getParentNode()]; + + double x = 1, y = 1, z = 1; + if (HAS_ATTR(element, "x")) + x = strTo(ATTR(element, "x")); + if (HAS_ATTR(element, "y")) + y = strTo(ATTR(element, "y")); + if (HAS_ATTR(element, "z")) + z = strTo(ATTR(element, "z")); + + osg::Matrix scale; + scale.makeScale(x, y, z); + + osg::MatrixTransform* transform = new osg::MatrixTransform(); + transform->setMatrix(scale); + node->asGroup()->addChild(transform); + _nodes[element] = transform; + + std::set validChilds; + validChilds.insert("translation"); + validChilds.insert("rotation"); + validChilds.insert("scale"); + validChilds.insert("node"); + processChildren(validChilds, element); } void OSGInvoker::processNode(const Arabica::DOM::Node& element) { - _nodes_t::iterator nodeIter = _nodes.find(element.getParentNode()); - assert(nodeIter != _nodes.end()); - - assert(_nodes.find(element.getParentNode()) != _nodes.end()); - osg::Node* parent = _nodes[element.getParentNode()]; - - std::string filename; - if (HAS_ATTR(element, "src")) { - filename = ATTR(element, "src"); - - if (filename.length() > 0) { - std::string extension; - size_t extensionStart = filename.find_last_of("."); - if (extensionStart != std::string::npos) { - extension = filename.substr(extensionStart); - } - - URL srcURI(filename); - if (!srcURI.toAbsolute(_interpreter->getBaseURI())) { - LOG(ERROR) << "invoke element has relative src URI with no baseURI set."; - return; - } - filename = srcURI.asLocalFile(extension); - osg::ref_ptr model = osgDB::readNodeFile(filename); - if (model.get()) - parent->asGroup()->addChild(model); - - } - } + _nodes_t::iterator nodeIter = _nodes.find(element.getParentNode()); + assert(nodeIter != _nodes.end()); + + assert(_nodes.find(element.getParentNode()) != _nodes.end()); + osg::Node* parent = _nodes[element.getParentNode()]; + + std::string filename; + if (HAS_ATTR(element, "src")) { + filename = ATTR(element, "src"); + + if (filename.length() > 0) { + std::string extension; + size_t extensionStart = filename.find_last_of("."); + if (extensionStart != std::string::npos) { + extension = filename.substr(extensionStart); + } + + URL srcURI(filename); + if (!srcURI.toAbsolute(_interpreter->getBaseURI())) { + LOG(ERROR) << "invoke element has relative src URI with no baseURI set."; + return; + } + filename = srcURI.asLocalFile(extension); + osg::ref_ptr model = osgDB::readNodeFile(filename); + if (model.get()) + parent->asGroup()->addChild(model); + + } + } } void OSGInvoker::processChildren(const std::set& validChildren, const Arabica::DOM::Node& element) { - Arabica::DOM::NodeList childs = element.getChildNodes(); - for (int i = 0; i < childs.getLength(); ++i) { - if (childs.item(i).getNodeType() != Arabica::DOM::Node_base::ELEMENT_NODE) - continue; - if (false) { - } else if (boost::iequals(LOCALNAME(childs.item(i)), "node") && - validChildren.find("node") != validChildren.end()) { - processNode(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "translation") && - validChildren.find("translation") != validChildren.end()) { - processTranslation(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "rotation") && - validChildren.find("rotation") != validChildren.end()) { - processRotation(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "scale") && - validChildren.find("scale") != validChildren.end()) { - processScale(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "viewport") && - validChildren.find("viewport") != validChildren.end()) { - processViewport(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "camera") && - validChildren.find("camera") != validChildren.end()) { - processCamera(childs.item(i)); - } else if (boost::iequals(LOCALNAME(childs.item(i)), "display") && - validChildren.find("display") != validChildren.end()) { - processDisplay(childs.item(i)); - } else { - LOG(INFO) << "Unknown XML element " << TAGNAME(childs.item(i)); - } - } + Arabica::DOM::NodeList childs = element.getChildNodes(); + for (int i = 0; i < childs.getLength(); ++i) { + if (childs.item(i).getNodeType() != Arabica::DOM::Node_base::ELEMENT_NODE) + continue; + if (false) { + } else if (boost::iequals(LOCALNAME(childs.item(i)), "node") && + validChildren.find("node") != validChildren.end()) { + processNode(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "translation") && + validChildren.find("translation") != validChildren.end()) { + processTranslation(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "rotation") && + validChildren.find("rotation") != validChildren.end()) { + processRotation(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "scale") && + validChildren.find("scale") != validChildren.end()) { + processScale(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "viewport") && + validChildren.find("viewport") != validChildren.end()) { + processViewport(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "camera") && + validChildren.find("camera") != validChildren.end()) { + processCamera(childs.item(i)); + } else if (boost::iequals(LOCALNAME(childs.item(i)), "display") && + validChildren.find("display") != validChildren.end()) { + processDisplay(childs.item(i)); + } else { + LOG(INFO) << "Unknown XML element " << TAGNAME(childs.item(i)); + } + } } void OSGInvoker::getViewport(const Arabica::DOM::Node& element, @@ -333,7 +333,7 @@ void OSGInvoker::getViewport(const Arabica::DOM::Node& element, unsigned int& width, unsigned int& height, CompositeDisplay* display) { - getViewport(element, x, y, width, height, display->getWidth(), display->getHeight()); + getViewport(element, x, y, width, height, display->getWidth(), display->getHeight()); } @@ -342,15 +342,14 @@ void OSGInvoker::getViewport(const Arabica::DOM::Node& element, unsigned int& y, unsigned int& width, unsigned int& height, - int& screenId) -{ - - screenId = (HAS_ATTR(element, "screenId") ? strTo(ATTR(element, "screenId")) : 0); - - unsigned int fullWidth = 0; - unsigned int fullHeight = 0; - CompositeDisplay::getResolution(fullWidth, fullHeight, screenId); - getViewport(element, x, y, width, height, fullWidth, fullHeight); + int& screenId) { + + screenId = (HAS_ATTR(element, "screenId") ? strTo(ATTR(element, "screenId")) : 0); + + unsigned int fullWidth = 0; + unsigned int fullHeight = 0; + CompositeDisplay::getResolution(fullWidth, fullHeight, screenId); + getViewport(element, x, y, width, height, fullWidth, fullHeight); } void OSGInvoker::getViewport(const Arabica::DOM::Node& element, @@ -359,43 +358,42 @@ void OSGInvoker::getViewport(const Arabica::DOM::Node& element, unsigned int& width, unsigned int& height, unsigned int fullWidth, - unsigned int fullHeight) -{ - if (HAS_ATTR(element, "x")) { - NumAttr xAttr = NumAttr(ATTR(element, "x")); - x = strTo(xAttr.value); - if (boost::iequals(xAttr.unit, "%")) - x = (x * fullWidth) / 100; - } - if (HAS_ATTR(element, "y")) { - NumAttr yAttr = NumAttr(ATTR(element, "y")); - y = strTo(yAttr.value); - if (boost::iequals(yAttr.unit, "%")) - y = (y * fullHeight) / 100; - } - if (HAS_ATTR(element, "width")) { - NumAttr widthAttr = NumAttr(ATTR(element, "width")); - width = strTo(widthAttr.value); - if (boost::iequals(widthAttr.unit, "%")) - width = (width * fullWidth) / 100; - } - if (HAS_ATTR(element, "height")) { - NumAttr heightAttr = NumAttr(ATTR(element, "height")); - height = strTo(heightAttr.value); - if (boost::iequals(heightAttr.unit, "%")) - height = (height * fullHeight) / 100; - } + unsigned int fullHeight) { + if (HAS_ATTR(element, "x")) { + NumAttr xAttr = NumAttr(ATTR(element, "x")); + x = strTo(xAttr.value); + if (boost::iequals(xAttr.unit, "%")) + x = (x * fullWidth) / 100; + } + if (HAS_ATTR(element, "y")) { + NumAttr yAttr = NumAttr(ATTR(element, "y")); + y = strTo(yAttr.value); + if (boost::iequals(yAttr.unit, "%")) + y = (y * fullHeight) / 100; + } + if (HAS_ATTR(element, "width")) { + NumAttr widthAttr = NumAttr(ATTR(element, "width")); + width = strTo(widthAttr.value); + if (boost::iequals(widthAttr.unit, "%")) + width = (width * fullWidth) / 100; + } + if (HAS_ATTR(element, "height")) { + NumAttr heightAttr = NumAttr(ATTR(element, "height")); + height = strTo(heightAttr.value); + if (boost::iequals(heightAttr.unit, "%")) + height = (height * fullHeight) / 100; + } } osgViewer::View* OSGInvoker::getView(const Arabica::DOM::Node& element) { - Arabica::DOM::Node curr = element; - while(curr && !boost::iequals(LOCALNAME(curr), "viewport")) { - curr = curr.getParentNode(); - } - if (curr && _views.find(curr) != _views.end()) - return _views[curr]; - return NULL; + Arabica::DOM::Node curr = element; + while(curr && !boost::iequals(LOCALNAME(curr), "viewport")) { + curr = curr.getParentNode(); + } + if (curr && _views.find(curr) != _views.end()) + return _views[curr]; + return NULL; } - + } \ No newline at end of file diff --git a/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.h b/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.h index aca54ec..e65bff8 100644 --- a/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.h +++ b/src/uscxml/plugins/invoker/graphics/openscenegraph/OSGInvoker.h @@ -35,64 +35,64 @@ public: virtual void cancel(const std::string sendId); virtual void invoke(const InvokeRequest& req); virtual void sendToParent(const SendRequest& req); - virtual void handleEvent(Arabica::DOM::Events::Event& event); + virtual void handleEvent(Arabica::DOM::Events::Event& event); - virtual void runOnMainThread(); + virtual void runOnMainThread(); protected: - void processDisplay(const Arabica::DOM::Node& element); - void updateDisplay(osg::Node* node, Arabica::DOM::Events::Event& event); - void processViewport(const Arabica::DOM::Node& element); - void updateViewport(osg::Node* node, Arabica::DOM::Events::Event& event); - void processCamera(const Arabica::DOM::Node& element); - void updateCamera(osg::Node* node, Arabica::DOM::Events::Event& event); - - void processTranslation(const Arabica::DOM::Node& element); - void updateTranslation(osg::Node* node, Arabica::DOM::Events::Event& event); - - void processRotation(const Arabica::DOM::Node& element); - void updateRotation(osg::Node* node, Arabica::DOM::Events::Event& event); - static osg::Matrix rotationFromElement(const Arabica::DOM::Node& element); - - void processScale(const Arabica::DOM::Node& element); - void updateScale(osg::Node* node, Arabica::DOM::Events::Event& event); - void processNode(const Arabica::DOM::Node& element); - void updateNode(osg::Node* node, Arabica::DOM::Events::Event& event); - - void processChildren(const std::set& validChildren, const Arabica::DOM::Node& element); - - void getViewport(const Arabica::DOM::Node& element, - unsigned int& x, - unsigned int& y, - unsigned int& width, - unsigned int& height, - int& screenId); - - void getViewport(const Arabica::DOM::Node& element, - unsigned int& x, - unsigned int& y, - unsigned int& width, - unsigned int& height, - CompositeDisplay* display); - - void getViewport(const Arabica::DOM::Node& element, - unsigned int& x, - unsigned int& y, - unsigned int& width, - unsigned int& height, - unsigned int fullWidth, - unsigned int fullHeight); - - osgViewer::View* getView(const Arabica::DOM::Node& element); - - std::map, CompositeDisplay*> _displays; - typedef std::map, CompositeDisplay*> _displays_t; - - std::map, osgViewer::View*> _views; - typedef std::map, osgViewer::View*> _views_t; - - std::map, osg::Node*> _nodes; - typedef std::map, osg::Node*> _nodes_t; + void processDisplay(const Arabica::DOM::Node& element); + void updateDisplay(osg::Node* node, Arabica::DOM::Events::Event& event); + void processViewport(const Arabica::DOM::Node& element); + void updateViewport(osg::Node* node, Arabica::DOM::Events::Event& event); + void processCamera(const Arabica::DOM::Node& element); + void updateCamera(osg::Node* node, Arabica::DOM::Events::Event& event); + + void processTranslation(const Arabica::DOM::Node& element); + void updateTranslation(osg::Node* node, Arabica::DOM::Events::Event& event); + + void processRotation(const Arabica::DOM::Node& element); + void updateRotation(osg::Node* node, Arabica::DOM::Events::Event& event); + static osg::Matrix rotationFromElement(const Arabica::DOM::Node& element); + + void processScale(const Arabica::DOM::Node& element); + void updateScale(osg::Node* node, Arabica::DOM::Events::Event& event); + void processNode(const Arabica::DOM::Node& element); + void updateNode(osg::Node* node, Arabica::DOM::Events::Event& event); + + void processChildren(const std::set& validChildren, const Arabica::DOM::Node& element); + + void getViewport(const Arabica::DOM::Node& element, + unsigned int& x, + unsigned int& y, + unsigned int& width, + unsigned int& height, + int& screenId); + + void getViewport(const Arabica::DOM::Node& element, + unsigned int& x, + unsigned int& y, + unsigned int& width, + unsigned int& height, + CompositeDisplay* display); + + void getViewport(const Arabica::DOM::Node& element, + unsigned int& x, + unsigned int& y, + unsigned int& width, + unsigned int& height, + unsigned int fullWidth, + unsigned int fullHeight); + + osgViewer::View* getView(const Arabica::DOM::Node& element); + + std::map, CompositeDisplay*> _displays; + typedef std::map, CompositeDisplay*> _displays_t; + + std::map, osgViewer::View*> _views; + typedef std::map, osgViewer::View*> _views_t; + + std::map, osg::Node*> _nodes; + typedef std::map, osg::Node*> _nodes_t; tthread::recursive_mutex _mutex; std::string _invokeId; diff --git a/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.cpp b/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.cpp index 65eed78..a983d58 100644 --- a/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.cpp +++ b/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.cpp @@ -36,58 +36,58 @@ void HeartbeatInvoker::send(const SendRequest& req) { } void HeartbeatInvoker::cancel(const std::string sendId) { - HeartbeatDispatcher::getInstance()->cancelEvent(toStr(this)); + HeartbeatDispatcher::getInstance()->cancelEvent(toStr(this)); } void HeartbeatInvoker::sendToParent(const SendRequest& req) { } void HeartbeatInvoker::invoke(const InvokeRequest& req) { - _invokeId = req.invokeid; - _event.invokeid = _invokeId; - std::string intervalStr; - double interval = 0; - unsigned long intervalMs = 0; - InvokeRequest::params_t::const_iterator paramIter = req.params.begin(); - while(paramIter != req.params.end()) { - if (boost::iequals(paramIter->first, "interval")) { - intervalStr = paramIter->second; - NumAttr intervalAttr(paramIter->second); - interval = strTo(intervalAttr.value); - if (false) { - } else if (boost::iequals(intervalAttr.unit, "s")) { - intervalMs = interval * 1000; - } else if (boost::iequals(intervalAttr.unit, "ms")) { - intervalMs = interval; - } else { - intervalMs = interval; - } - } - if (boost::iequals(paramIter->first, "eventname")) { - _event.name = paramIter->second; - } - paramIter++; - } - if (_event.name.length() == 0) - _event.name = std::string("heartbeat." + intervalStr); - - if (intervalMs > 0) { - HeartbeatDispatcher::getInstance()->addEvent(toStr(this), HeartbeatInvoker::dispatch, intervalMs, this, true); - } + _invokeId = req.invokeid; + _event.invokeid = _invokeId; + std::string intervalStr; + double interval = 0; + unsigned long intervalMs = 0; + InvokeRequest::params_t::const_iterator paramIter = req.params.begin(); + while(paramIter != req.params.end()) { + if (boost::iequals(paramIter->first, "interval")) { + intervalStr = paramIter->second; + NumAttr intervalAttr(paramIter->second); + interval = strTo(intervalAttr.value); + if (false) { + } else if (boost::iequals(intervalAttr.unit, "s")) { + intervalMs = interval * 1000; + } else if (boost::iequals(intervalAttr.unit, "ms")) { + intervalMs = interval; + } else { + intervalMs = interval; + } + } + if (boost::iequals(paramIter->first, "eventname")) { + _event.name = paramIter->second; + } + paramIter++; + } + if (_event.name.length() == 0) + _event.name = std::string("heartbeat." + intervalStr); + + if (intervalMs > 0) { + HeartbeatDispatcher::getInstance()->addEvent(toStr(this), HeartbeatInvoker::dispatch, intervalMs, this, true); + } } void HeartbeatInvoker::dispatch(void* instance, std::string name) { - HeartbeatInvoker* invoker = (HeartbeatInvoker*)instance; - invoker->_interpreter->receive(invoker->_event); + HeartbeatInvoker* invoker = (HeartbeatInvoker*)instance; + invoker->_interpreter->receive(invoker->_event); } - + HeartbeatDispatcher* HeartbeatDispatcher::_instance = NULL; HeartbeatDispatcher* HeartbeatDispatcher::getInstance() { - if (_instance == NULL) { - _instance = new HeartbeatDispatcher(); - _instance->start(); - } - return _instance; + if (_instance == NULL) { + _instance = new HeartbeatDispatcher(); + _instance->start(); + } + return _instance; } HeartbeatDispatcher::HeartbeatDispatcher() {} diff --git a/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.h b/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.h index 4b230c1..a7f3cbd 100644 --- a/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.h +++ b/src/uscxml/plugins/invoker/heartbeat/HeartbeatInvoker.h @@ -28,22 +28,22 @@ public: virtual void invoke(const InvokeRequest& req); virtual void sendToParent(const SendRequest& req); - static void dispatch(void* instance, std::string name); - + static void dispatch(void* instance, std::string name); + protected: std::string _invokeId; - Event _event; - + Event _event; + }; class HeartbeatDispatcher : public DelayedEventQueue { public: - static HeartbeatDispatcher* getInstance(); + static HeartbeatDispatcher* getInstance(); protected: - static HeartbeatDispatcher* _instance; - HeartbeatDispatcher(); + static HeartbeatDispatcher* _instance; + HeartbeatDispatcher(); }; - + #ifdef BUILD_AS_PLUGINS PLUMA_INHERIT_PROVIDER(HeartbeatInvoker, InvokerImpl); #endif diff --git a/src/uscxml/plugins/invoker/sample/SampleInvoker.cpp b/src/uscxml/plugins/invoker/sample/SampleInvoker.cpp index f115c25..3678cc3 100644 --- a/src/uscxml/plugins/invoker/sample/SampleInvoker.cpp +++ b/src/uscxml/plugins/invoker/sample/SampleInvoker.cpp @@ -42,7 +42,7 @@ void SampleInvoker::sendToParent(SendRequest& req) { } void SampleInvoker::invoke(InvokeRequest& req) { - _invokeId = req.invokeid; + _invokeId = req.invokeid; } } \ No newline at end of file diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp index 85f2963..bcdf2d4 100644 --- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp +++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp @@ -43,7 +43,7 @@ void USCXMLInvoker::cancel(const std::string sendId) { } void USCXMLInvoker::sendToParent(const SendRequest& req) { - SendRequest parentReq = req; + SendRequest parentReq = req; parentReq.invokeid = _invokeId; _parentInterpreter->receive(parentReq); } @@ -55,10 +55,10 @@ void USCXMLInvoker::invoke(const InvokeRequest& req) { if (dataModel) { } - if (_invokedInterpreter) { - _invokedInterpreter->setInvoker(boost::static_pointer_cast(shared_from_this())); - _invokedInterpreter->start(); - } + if (_invokedInterpreter) { + _invokedInterpreter->setInvoker(boost::static_pointer_cast(shared_from_this())); + _invokedInterpreter->start(); + } } } \ No newline at end of file diff --git a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp index 2957078..c269869 100644 --- a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp +++ b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp @@ -20,12 +20,12 @@ UmundoInvoker::UmundoInvoker() : _node(NULL), _pub(NULL), _sub(NULL) { } UmundoInvoker::~UmundoInvoker() { - if (_node) { - if (_sub) - _node->removeSubscriber(*_sub); - if (_pub) - _node->removePublisher(*_pub); - } + if (_node) { + if (_sub) + _node->removeSubscriber(*_sub); + if (_pub) + _node->removePublisher(*_pub); + } }; boost::shared_ptr UmundoInvoker::create(Interpreter* interpreter) { @@ -127,37 +127,37 @@ void UmundoInvoker::invoke(const InvokeRequest& req) { return; } if (req.params.find("domain") != req.params.end()) { - domain = req.params.find("domain")->second; - } + domain = req.params.find("domain")->second; + } _node = getNode(_interpreter, domain); // add type from .proto or .desc files if (req.params.find("type") != req.params.end()) { std::pair typeRange = req.params.equal_range("types"); for (InvokeRequest::params_t::const_iterator it = typeRange.first; it != typeRange.second; it++) { - URL typeURI(it->second); - if (typeURI.toAbsolute(_interpreter->getBaseURI())) { - std::string filename = typeURI.asLocalFile(".proto"); - umundo::PBSerializer::addProto(filename); - } else { - LOG(ERROR) << "umundo invoker has relative type src but nor baseURI set with interpreter."; - } + URL typeURI(it->second); + if (typeURI.toAbsolute(_interpreter->getBaseURI())) { + std::string filename = typeURI.asLocalFile(".proto"); + umundo::PBSerializer::addProto(filename); + } else { + LOG(ERROR) << "umundo invoker has relative type src but nor baseURI set with interpreter."; + } } } - // add directory with .proto or .desc files - if (req.params.find("types") != req.params.end()) { + // add directory with .proto or .desc files + if (req.params.find("types") != req.params.end()) { std::pair typeRange = req.params.equal_range("types"); for (InvokeRequest::params_t::const_iterator it = typeRange.first; it != typeRange.second; it++) { - URL typeURI(it->second); - if (typeURI.toAbsolute(_interpreter->getBaseURI()) && typeURI.scheme().compare("file") == 0) { - umundo::PBSerializer::addProto(typeURI.path()); - } else { - LOG(ERROR) << "invoke element has relative src URI with no baseURI set."; - } + URL typeURI(it->second); + if (typeURI.toAbsolute(_interpreter->getBaseURI()) && typeURI.scheme().compare("file") == 0) { + umundo::PBSerializer::addProto(typeURI.path()); + } else { + LOG(ERROR) << "invoke element has relative src URI with no baseURI set."; + } } - } - + } + if (!_isService) { // use umundo to publish objects on a channel _pub = new umundo::TypedPublisher(channelName); @@ -257,15 +257,15 @@ void UmundoInvoker::changed(umundo::ServiceDescription desc) { std::multimap > UmundoInvoker::_nodes; umundo::Node* UmundoInvoker::getNode(Interpreter* interpreter, const std::string& domain) { - std::pair<_nodes_t::iterator, _nodes_t::iterator> range = _nodes.equal_range(interpreter->getName()); - for (_nodes_t::iterator it = range.first; it != range.second; it++) { - if (it->second.first.compare(domain) == 0) - return it->second.second; - } - umundo::Node* node = new umundo::Node(domain); - std::pair > pair = std::make_pair(interpreter->getName(), std::make_pair(domain, node)); - _nodes.insert(pair); - return node; + std::pair<_nodes_t::iterator, _nodes_t::iterator> range = _nodes.equal_range(interpreter->getName()); + for (_nodes_t::iterator it = range.first; it != range.second; it++) { + if (it->second.first.compare(domain) == 0) + return it->second.second; + } + umundo::Node* node = new umundo::Node(domain); + std::pair > pair = std::make_pair(interpreter->getName(), std::make_pair(domain, node)); + _nodes.insert(pair); + return node; } bool UmundoInvoker::protobufToData(Data& data, const google::protobuf::Message& msg) { diff --git a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h index d54160e..58fa5d8 100644 --- a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h +++ b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h @@ -58,7 +58,7 @@ protected: std::map _svcs; static std::multimap > _nodes; - typedef std::multimap > _nodes_t; + typedef std::multimap > _nodes_t; static umundo::Node* getNode(Interpreter* interpreter, const std::string& domain); }; diff --git a/src/uscxml/plugins/ioprocessor/basichttp/libevent/EventIOProcessor.cpp b/src/uscxml/plugins/ioprocessor/basichttp/libevent/EventIOProcessor.cpp index 7b90951..eb5d77b 100644 --- a/src/uscxml/plugins/ioprocessor/basichttp/libevent/EventIOProcessor.cpp +++ b/src/uscxml/plugins/ioprocessor/basichttp/libevent/EventIOProcessor.cpp @@ -126,7 +126,7 @@ void EventIOProcessor::send(const SendRequest& req) { evhttp_add_header(evhttp_request_get_output_headers(httpReq), namelistIter->first.c_str(), evhttp_encode_uri(namelistIter->second.c_str())) - && LOG(ERROR) << "evhttp_add_header: " << strerror(errno); + && LOG(ERROR) << "evhttp_add_header: " << strerror(errno); namelistIter++; } } @@ -139,7 +139,7 @@ void EventIOProcessor::send(const SendRequest& req) { evhttp_add_header(evhttp_request_get_output_headers(httpReq), paramIter->first.c_str(), evhttp_encode_uri(paramIter->second.c_str())) - && LOG(ERROR) << "evhttp_add_header: " << strerror(errno); + && LOG(ERROR) << "evhttp_add_header: " << strerror(errno); paramIter++; } } diff --git a/test/src/test-arabica-events.cpp b/test/src/test-arabica-events.cpp index bfbd570..193b7ae 100644 --- a/test/src/test-arabica-events.cpp +++ b/test/src/test-arabica-events.cpp @@ -11,16 +11,16 @@ using namespace Arabica::DOM; class CapturingEventListener : public Events::EventListener { public: - void handleEvent(Events::Event& event) { - std::cout << "Handling captured event " << event.getType() << std::endl; - } + void handleEvent(Events::Event& event) { + std::cout << "Handling captured event " << event.getType() << std::endl; + } }; class BubblingEventListener : public Events::EventListener { public: - void handleEvent(Events::Event& event) { - std::cout << "Handling bubbling event " << event.getType() << std::endl; - } + void handleEvent(Events::Event& event) { + std::cout << "Handling bubbling event " << event.getType() << std::endl; + } }; int main(int argc, char** argv) { @@ -28,40 +28,40 @@ int main(int argc, char** argv) { std::cerr << "Expected path to test-arabica-events.xml" << std::endl; exit(EXIT_FAILURE); } - - Arabica::SAX::InputSource inputSource(argv[1]); - + + Arabica::SAX::InputSource inputSource(argv[1]); + Arabica::SAX2DOM::Parser domParser; Arabica::SAX::CatchErrorHandler errorHandler; domParser.setErrorHandler(errorHandler); if(!domParser.parse(inputSource)) { - return -1; + return -1; } - Document doc = domParser.getDocument(); - Element elem = doc.getDocumentElement(); - - CapturingEventListener cel; - BubblingEventListener bel; - - Events::EventTarget eventTarget(elem); - eventTarget.addEventListener("DOMNodeInserted", cel, true); - eventTarget.addEventListener("DOMNodeInserted", bel, false); - eventTarget.addEventListener("DOMNodeRemoved", cel, true); - eventTarget.addEventListener("DOMNodeRemoved", bel, false); - eventTarget.addEventListener("DOMAttrModified", cel, true); - eventTarget.addEventListener("DOMAttrModified", bel, false); - - Arabica::XPath::XPath xpath; - Arabica::XPath::NodeSet divs = xpath.evaluate("//div", doc).asNodeSet(); - - for (int i = 0; i < divs.size(); i++) { + Document doc = domParser.getDocument(); + Element elem = doc.getDocumentElement(); + + CapturingEventListener cel; + BubblingEventListener bel; + + Events::EventTarget eventTarget(elem); + eventTarget.addEventListener("DOMNodeInserted", cel, true); + eventTarget.addEventListener("DOMNodeInserted", bel, false); + eventTarget.addEventListener("DOMNodeRemoved", cel, true); + eventTarget.addEventListener("DOMNodeRemoved", bel, false); + eventTarget.addEventListener("DOMAttrModified", cel, true); + eventTarget.addEventListener("DOMAttrModified", bel, false); + + Arabica::XPath::XPath xpath; + Arabica::XPath::NodeSet divs = xpath.evaluate("//div", doc).asNodeSet(); + + for (int i = 0; i < divs.size(); i++) { Element divElem = Element(divs[i]); divElem.setAttribute("foo", "true"); divElem.setAttribute("foo", "false"); - - Element fooElem = divElem.getOwnerDocument().createElement("foo"); - divElem.appendChild(fooElem); - divElem.removeChild(fooElem); + + Element fooElem = divElem.getOwnerDocument().createElement("foo"); + divElem.appendChild(fooElem); + divElem.removeChild(fooElem); } diff --git a/test/src/test-osg.cpp b/test/src/test-osg.cpp index 76199c3..a3fcdc6 100644 --- a/test/src/test-osg.cpp +++ b/test/src/test-osg.cpp @@ -7,20 +7,20 @@ tthread::thread* thread; osgViewer::Viewer viewer; void run(void* instance) { - osg::ref_ptr loadedModel = osgDB::readNodeFile("/Users/sradomski/Documents/TK/Projects/SmartVortex/Code/FE-Design/data/sv_processed/HARD_MP_VAL_000.wrl.osgb"); - viewer.setSceneData(loadedModel.get()); - + osg::ref_ptr loadedModel = osgDB::readNodeFile("/Users/sradomski/Documents/TK/Projects/SmartVortex/Code/FE-Design/data/sv_processed/HARD_MP_VAL_000.wrl.osgb"); + viewer.setSceneData(loadedModel.get()); + // viewer.startThreading(); - viewer.run(); + viewer.run(); } int main(int argc, char** argv) { - viewer.setThreadingModel(osgViewer::ViewerBase::SingleThreaded); - viewer.realize(); - thread = new tthread::thread(run, NULL); - while(true) { - tthread::this_thread::sleep_for(tthread::chrono::microseconds(1000)); + viewer.setThreadingModel(osgViewer::ViewerBase::SingleThreaded); + viewer.realize(); + thread = new tthread::thread(run, NULL); + while(true) { + tthread::this_thread::sleep_for(tthread::chrono::microseconds(1000)); // viewer.eventTraversal(); } } \ No newline at end of file diff --git a/test/src/test-prolog-swi.cpp b/test/src/test-prolog-swi.cpp index afe0754..9e44f12 100644 --- a/test/src/test-prolog-swi.cpp +++ b/test/src/test-prolog-swi.cpp @@ -5,87 +5,89 @@ using namespace std; -int main(void){ - const char* swibin = getenv("SWI_BINARY"); - if (swibin == NULL) - swibin = SWI_BINARY; - - static char * av[] = { - (char*)swibin, +int main(void) { + const char* swibin = getenv("SWI_BINARY"); + if (swibin == NULL) + swibin = SWI_BINARY; + + static char * av[] = { + (char*)swibin, // "--quiet", // "-s", // "/Users/sradomski/Documents/TK/Code/pl-devel/demo/likes.pl", - NULL}; - if( ! PL_initialise(1,av)){ - cout<<"error initializing"< 0) { // std::cout << "Yes!" << std::endl; // } else { // std::cout << "No!" << std::endl; // } - + // std::cout << compound.name() << std::endl; // PlTermv filename("/Users/sradomski/Documents/TK/Code/pl-devel/demo/likes.pl"); // PlQuery loadFiles("system", "load_files", filename); - + // predicate_t loadFiles = PL_predicate("load_files",1,"system"); // term_t h0 = PL_new_term_refs(1); - + // int rval; // const char * expression = "/Users/sradomski/Documents/TK/Code/pl-devel/demo/likes.pl"; // PL_put_atom_chars(h0,expression); // rval = PL_call_predicate(NULL, PL_Q_NORMAL, loadFiles, h0); // PL_halt( rval ? 0 : 1 ); - + // PL_close_foreign_frame(fid); - return 0; + return 0; } diff --git a/test/src/test-url.cpp b/test/src/test-url.cpp index a9a6594..4e94455 100644 --- a/test/src/test-url.cpp +++ b/test/src/test-url.cpp @@ -7,43 +7,43 @@ using namespace uscxml; using namespace boost; int main(int argc, char** argv) { - { - URL url("http://www.heise.de/index.html"); - std::cout << url.asString() << std::endl; - assert(url.isAbsolute()); - assert(iequals(url.scheme(), "http")); - assert(iequals(url.host(), "www.heise.de")); - assert(iequals(url.port(), "80")); - assert(iequals(url.path(), "/index.html")); - assert(iequals(url.asString(), "http://www.heise.de/index.html")); - } - { - URL url("file:Document/Text.foo"); - std::cout << url.asString() << std::endl; - assert(!url.isAbsolute()); - assert(iequals(url.scheme(), "file")); - assert(iequals(url.host(), "")); - assert(iequals(url.port(), "0")); - assert(iequals(url.path(), "Document/Text.foo")); - assert(iequals(url.asString(), "file:Document/Text.foo")); - } - { - URL url("test/index.html"); - assert(iequals(url.scheme(), "")); - url.toAbsoluteCwd(); - assert(iequals(url.scheme(), "file")); - std::cout << url.asString() << std::endl; - } - { - URL url("C:\\Document\\Some Spaces\\index.txt"); - assert(url.isAbsolute()); - assert(iequals(url.scheme(), "file")); - std::cout << url.asString() << std::endl; - } - { - URL url = URL::toLocalFile("this is quite some content!", "txt"); - std::cout << url.asLocalFile("txt"); - assert(url.isAbsolute()); - assert(iequals(url.scheme(), "file")); - } + { + URL url("http://www.heise.de/index.html"); + std::cout << url.asString() << std::endl; + assert(url.isAbsolute()); + assert(iequals(url.scheme(), "http")); + assert(iequals(url.host(), "www.heise.de")); + assert(iequals(url.port(), "80")); + assert(iequals(url.path(), "/index.html")); + assert(iequals(url.asString(), "http://www.heise.de/index.html")); + } + { + URL url("file:Document/Text.foo"); + std::cout << url.asString() << std::endl; + assert(!url.isAbsolute()); + assert(iequals(url.scheme(), "file")); + assert(iequals(url.host(), "")); + assert(iequals(url.port(), "0")); + assert(iequals(url.path(), "Document/Text.foo")); + assert(iequals(url.asString(), "file:Document/Text.foo")); + } + { + URL url("test/index.html"); + assert(iequals(url.scheme(), "")); + url.toAbsoluteCwd(); + assert(iequals(url.scheme(), "file")); + std::cout << url.asString() << std::endl; + } + { + URL url("C:\\Document\\Some Spaces\\index.txt"); + assert(url.isAbsolute()); + assert(iequals(url.scheme(), "file")); + std::cout << url.asString() << std::endl; + } + { + URL url = URL::toLocalFile("this is quite some content!", "txt"); + std::cout << url.asLocalFile("txt"); + assert(url.isAbsolute()); + assert(iequals(url.scheme(), "file")); + } } \ No newline at end of file -- cgit v0.12