void CProfileRepoServerClb::OnRequest(Ipc::MsgID id, UInt8 const* pPayload, UInt32 payloadSize, UInt8* const pResponseBuffer, UInt32& bufferSize, Ipc::DirectionID) { LOG4CPLUS_TRACE_METHOD(msLogger, __PRETTY_FUNCTION__ ); const RepoRequest * req = reinterpret_cast<const RepoRequest*>(pPayload); switch (req->type) { case REQ_ADD_PROFILE_API: addProfileAPI(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_REMOVE_PROFILE_API: removeProfileAPI(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_ADD_PROFILE: addProfile(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_REMOVE_PROFILE: removeProfile(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_ADD_PROFILE_IMPLEMENTATION: addProfileImplementation(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_REMOVE_PROFILE_IMPLEMENTATION_PL: removeProfileImplementationPl(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_FIND_PROFILES: findProfiles(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_GET_MANIFEST: getManifest(req,payloadSize,pResponseBuffer,bufferSize); break; case REQ_GET_PROFILE_LIST: getProfilesList(req,payloadSize,pResponseBuffer,bufferSize); break; } }
Extension::Extension(QString path, QString serverSocketPath) : QObject(0) { m_extensionId = path + "-" + QTime::currentTime().msec() + "-" + QString::number(qrand()); QJsonObject manifest = getManifest(path); if (!manifest.isEmpty()) { m_name = manifest.value("name").toString(); if (m_name.isEmpty()) { failedToLoadExtension(path, tr("name missing or invalid")); return; } m_runtime = manifest.value("runtime").toString().toLower(); QString main = manifest.value("main").toString(); if (m_runtime == "nodejs") { process = new QProcess(); process->setProcessChannelMode(QProcess::ForwardedChannels); process->setWorkingDirectory(path); QStringList args; args << "--harmony-proxies"; args << main; args << serverSocketPath; args << m_extensionId; QString runtimePath = Notepadqq::nodejsPath(); connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(on_processError(QProcess::ProcessError))); process->start(runtimePath, args); } } else { failedToLoadExtension(path, tr("unable to read nqq-manifest.json")); return; } // FIXME Load editor parts /*QFile fUi(path + "/ui.js"); if (fUi.open(QFile::ReadOnly | QFile::Text)) { } else { failedToLoadExtension(path, "ui.js missing"); return; }*/ }
int DemoApp::start() { xsColor color = {255,255,255,255}; xsSetColor(xsGetSystemGc(), color); xsGetScreenDimension(&width, &height); xsFillRectangle(xsGetSystemGc(), 0, 0, width, height);//, xsArgbToColor(0xFFFFFFFF)); xsFlushScreen(0, 0, width - 1, height - 1); const char * js = getManifest()->getStartup(); invokeJavascript(js, LOAD_JS_STRING); x = (width - BOX_SIZE) / 2; y = (height - BOX_SIZE) / 2; //img = this->getResource()->loadImage(xsT("logo-48x48.jpg")); //timer = xsStartTimer(20, _onTimeout, this); return XS_EC_OK; }
int execJVM( HINSTANCE hVM, HINSTANCE hInstance, char *jarfile, char *classpath, char *classname, char *arg, int version, int minversion ) { JNIEnv *env; JavaVM *jvm; jint res; jmethodID mid; jclass cls; jclass stringClass; jobjectArray args = NULL; jstring jstr; int ret = JVM_OK; char *manifest; HWND startingJava; // "Starting Java" dialog box startingJava = CreateDialog( hInstance, MAKEINTRESOURCE(IDD_DIALOG2), NULL, aboutCallback ); ShowWindow(startingJava, SW_SHOW); (*(FARPROC*)&JNI_CreateJavaVM_X = GetProcAddress( hVM, "JNI_CreateJavaVM" )); if ( JNI_CreateJavaVM_X == NULL ) // Happens on Win98 return JVM_CLASSERR; if ( version == 1 ) { JDK1_1InitArgs vm_args; (*(FARPROC*)&JNI_GetDefaultJavaVMInitArgs_X = GetProcAddress( hVM, "JNI_GetDefaultJavaVMInitArgs" )); vm_args.version = JNI_VERSION_1_1; JNI_GetDefaultJavaVMInitArgs_X( &vm_args ); vm_args.classpath = classpath; res = JNI_CreateJavaVM_X( &jvm, (void**)&env, (JavaVMInitArgs*) &vm_args ); } else { JavaVMInitArgs vm_args; JavaVMOption options[1]; char jvm_opt[LINEMAXLEN+100]; sprintf( jvm_opt, "-Djava.class.path=%s", classpath ); options[0].optionString = jvm_opt; vm_args.version = JNI_VERSION_1_2; vm_args.options = options; vm_args.nOptions = 1; vm_args.ignoreUnrecognized = TRUE; res = JNI_CreateJavaVM_X( &jvm, (void**)&env, &vm_args ); } if ( res < 0 ) return JVM_PROBLEM; version = (*env)->GetVersion( env ); if ( version < minversion ) { ret = JVM_VERSIONTOOSMALL; goto destroy; } #ifdef SHOWDEBUG showVersion( version ); #endif if ( *classname == '\0' ) { manifest = getManifest( env, jarfile ); getClassName( manifest, classname, LINEMAXLEN ); } strReplace( classname, '.', '/' ); cls = (*env)->FindClass( env, classname ); if ( cls == 0 ) { ret = JVM_CLASSERR; goto destroy; } jstr = (*env)->NewStringUTF( env, arg?arg:"" ); stringClass = (*env)->FindClass( env, "java/lang/String" ); args = (*env)->NewObjectArray( env, arg?1:0, stringClass, jstr ); mid = (*env)->GetStaticMethodID( env, cls, "main", "([Ljava/lang/String;)V" ); if ( mid == 0 ) { ret = JVM_CLASSERR; goto destroy; } DestroyWindow(startingJava); (*env)->CallStaticVoidMethod( env, cls, mid, args ); destroy: //if (env->ExceptionOccurred()) { // env->ExceptionDescribe(); //} (*jvm)->DestroyJavaVM(jvm); return ret; }