Manejo de un módulo identificado en C

He escrito un complemento de prueba para Node.JS (una aplicación de little hello world sin instancias) y ahora estoy jugando con complementos compatibles con plugin. Actualmente estoy tratando de crear un complemento que pueda acceder a las funciones del complemento hello world, así como al mundo hello que llama al complemento complemento del plugin con un registro de presencia.

Hasta el momento, la única forma en que puedo determinar hasta ahora es que un archivo .js requiera ambos complementos, luego una llamada al complemento Hello World para el registro, luego la llamada de plugin-host. Entonces, en resumen, la encoding se vería como:

var host = require('./pluginHost'); host.registerPlugin(require('./helloWorldPlugin').plugin()); host.registerPlugin(require('./fooBarBazPlugin').plugin()); host.registrationComplete(); 

En realidad, podría haber un poco más de código de configuración, pero esto es más un concepto en este momento. Entonces, dado el código anterior, dentro del código del complemento pluginHost , ¿cómo podría acceder y descargar información de ese objeto? Tenga en cuenta que la parte del código que se está pluginHost al pluginHost sería una colección estática de funciones que contendría información sobre los otros objetos y clases disponibles, así como un IPC de línea principal entre el pluginHost y otros plugins .

Righto, descubrió cómo hacerlo.

C ++:

 Handle registerPlugin(const Arguments &args) { HandleScope scope; Handle This = args.This(); Handle context = Context::New(); Handle object = This->Get(String::New("ObjectValueIWantKey"))->ToObject(); if (object == Undefined()) { return Undefined(); } Handle functionName = object->Get(String::New("SomeFunctionName")); if (functionName->IsFunction()) { Handle function = Handle::Cast(functionName); Handle fargs[1] = { String::New("ARG") }; Handle methodResult = function->Call(object, 1, fargs); } Handle variableResult = object->Get(String::New("SomePropertyName")); ... } 

Con este ejemplo, al llamar a host.registerPlugin(require('./pluginObject')) permitirá que la biblioteca pluginHost interconecte con ella, y la incluirá para otros sistemas.

    Intereting Posts