VALUE MethodResultJni::enumerateRubyObjects(VALUE klass) { RAWTRACE("enumerateRubyObjects"); JNIEnv *env = jniInit(); if (!env) { RAWLOG_ERROR("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return Qnil;; } if(getResultType(env) == typeList) { CHoldRubyValue valArray(rho_ruby_create_array()); HStringVector pIDs = rho_cast<HStringVector>(env, getListResult(env)); for(HStringVector::element_type::size_type i = 0; i < pIDs->size(); ++i) { VALUE valObj = rho_ruby_create_object_with_id( klass, (*pIDs)[i].c_str() ); rho_ruby_add_to_array(valArray, valObj); } RAWTRACE("has enumerated"); reset(env); return valArray; } else { return toRuby(); } }
bool LibXMLXPathResult::getInvalidIteratorState() { short restype = getResultType(); if (restype != UNORDERED_NODE_SNAPSHOT_TYPE && restype != ANY_TYPE && restype != ORDERED_NODE_SNAPSHOT_TYPE) return true; if (_xpathPtr->nodesetval == 0) return true; if (_xpathPtr->nodesetval->nodeNr <= _curIdx) return true; return false; }
MixingResult::MixingResult (const char* n, const char* rtype, const char* ptype, double res, double stat, double syst, double modl, double coef) : name(n)//fill the shiz for the class , measurement(res) , error(0) , correlations() , index(-1) , myType(getResultType(rtype)) , myPrime(getPrimeType(ptype)) , active(false) , coefficient(coef) { if (name == "fitresult") active = false; allResults.push_back(this); mapResults[name] = this; error = sqrt(pow(stat, 2) + pow(syst, 2) + pow(modl, 2)); std::cout << name << " : " << measurement << " +/- " << error << " (" << stat << ", " << syst << ", " << modl << ") " << coef << " " << rtype << " " << myType << " " << ptype << " " << myPrime << " " << std::endl; }
std::string MethodResultJni::toJson() { std::string res = "{}"; JNIEnv *env = jniInit(); if (!env) { RAWLOG_FATAL("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return res; } int type = getResultType(env); switch(type) { case typeNone: break; case typeBoolean: // { // bool booleanResult = static_cast<bool>(getBooleanResult(env)); // res = booleanResult ? Qtrue : Qfalse; // } break; case typeInteger: // { // int intResult = static_cast<int>(getIntegerResult(env)); // res = rho_ruby_create_integer(intResult); // } break; case typeDouble: // { // double doubleResult = static_cast<double>(getDoubleResult(env)); // res = rho_ruby_create_double(doubleResult); // } break; case typeString: // { // jhstring jhStrResult = getStringResult(env); // res = rho_cast<VALUE>(env, jhStrResult); // } break; case typeList: // { // jhobject jhListResult = getListResult(env); // res = rho_cast<VALUE>(env, jhListResult); // } break; case typeMap: // { // jhobject jhMapResult = getMapResult(env); // res = rho_cast<VALUE>(env, jhMapResult); // } break; case typeArgError: case typeError: { res = "{'error' : { 'message' : '"; res += getErrorMessage(env) + "' } }"; } break; default: RAWLOG_ERROR("Unknown runtime error in MethodResultJni class"); res = "{'error' : { 'message' : 'Unknown runtime error in MethodResultJni class' } }"; } reset(env); return res; }
VALUE MethodResultJni::toRuby() { RAWTRACE("toRuby"); VALUE res = Qnil; JNIEnv *env = jniInit(); if (!env) { RAWLOG_FATAL("JNI initialization failed"); rb_raise(rb_eRuntimeError,"JNI initialization failed"); return Qnil; } int type = getResultType(env); switch(type) { case typeNone: break; case typeBoolean: { bool booleanResult = static_cast<bool>(getBooleanResult(env)); res = booleanResult ? Qtrue : Qfalse; } break; case typeInteger: { int intResult = static_cast<int>(getIntegerResult(env)); res = rho_ruby_create_integer(intResult); } break; case typeDouble: { double doubleResult = static_cast<double>(getDoubleResult(env)); res = rho_ruby_create_double(doubleResult); } break; case typeString: { jhstring jhStrResult = getStringResult(env); res = rho_cast<VALUE>(env, jhStrResult); } break; case typeList: { jhobject jhListResult = getListResult(env); res = rho_cast<VALUE>(env, jhListResult); } break; case typeMap: { jhobject jhMapResult = getMapResult(env); res = rho_cast<VALUE>(env, jhMapResult); } break; case typeArgError: rho_ruby_raise_argerror(getErrorMessage(env).c_str()); break; case typeError: rb_raise(rb_eRuntimeError, getErrorMessage(env).c_str()); break; default: RAWLOG_FATAL("Unknown runtime error in MethodResultJni class"); rb_raise(rb_eRuntimeError,"Unknown runtime error in MethodResultJni class"); } reset(env); return res; }