Fennel: JniUtil Class Reference (original) (raw)
Static utility methods for dealing with JNI. More...
#include <[JniUtil.h](JniUtil%5F8h-source.html)>
| Static Public Member Functions | |
|---|---|
| static void | initDebug (char const *envVarName) |
| Initializes JNI debugging. | |
| static jint | init (JavaVM *pVm) |
| Initializes our JNI support. | |
| static void | configure (const JniUtilParams ¶ms) |
| Configure run-time JNI features, such as whether or not JNI handles are traced. | |
| static void | shutdown () |
| Shutdown run-time JNI features, such as JNI handle tracking. | |
| static std::string | getClassName (jclass jClass) |
| Calls java.lang.Class.getName(). | |
| static std::string | getFirstPublicInterfaceName (jclass jClass) |
| Calls java.lang.Class.getInterfaces() and returns result of java.lang.Class.getClassName() for the first public interface returned. | |
| static std::string | toStdString (JniEnvRef pEnv, jstring jString) |
| Converts a Java string to a C++ string. | |
| static jstring | toString (JniEnvRef pEnv, jobject jObject) |
| Calls toString() on a Java object. | |
| static jobject | getIter (JniEnvRef pEnv, jobject jCollection) |
| Calls java.util.Collection.iterator(). | |
| static jobject | getNextFromIter (JniEnvRef pEnv, jobject jIter) |
| Calls java.util.Iterator.hasNext/next(). | |
| static uint | lookUpEnum (std::string *pSymbols, std::string const &symbol) |
| Looks up an enum value. | |
| static void | detachJavaEnv () |
| Detaches the JNIEnv for the current thread (undoes effect of getAttachedJavaEnv in the case where needDetach received true). | |
| static void | incrementHandleCount (const char *pType, const void *pHandle) |
| Increment the handle count. | |
| static void | decrementHandleCount (const char *pType, const void *pHandle) |
| Decrement the handle count. | |
| static int | getHandleCount () |
| Retrieve the current handle count. | |
| static std::string | getXmi (const TupleDescriptor &tupleDesc) |
| Constructs a FemTupleDescriptor xmi string. | |
| static ThreadTracker & | getThreadTracker () |
| **Returns:**the tracker for JNI thread attach/detach | |
| Static Public Attributes | |
| static const jint | jniVersion = JNI_VERSION_1_2 |
| Required JNI version. | |
| static jmethodID | methGetJavaStreamHandle |
| Java method FennelJavaStreamMap.getJavaStreamHandle. | |
| static jmethodID | methGetIndexRoot |
| Java method FennelJavaStreamMap.getIndexRoot. | |
| static jmethodID | methBase64Decode |
| Java method RhBase64.decode. | |
| static jclass | classRhBase64 |
| static jmethodID | methRandomUUID |
| Java method UUID.randomUUID. | |
| static jclass | classUUID |
| static jmethodID | methFarragoTransformInit |
| Java method FarragoTransform.init. | |
| static jmethodID | methFarragoTransformExecute |
| Java method FarragoTransform.execute. | |
| static jmethodID | methFarragoTransformSetInputFetchTimeout |
| Java method FarragoTransform.setInputFetchTimeout. | |
| static jmethodID | methFarragoTransformRestart |
| Java method FarragoTransform.restart. | |
| static jclass | classFarragoTransformInputBinding |
| Java class FarragoTransform.InputBinding. | |
| static jmethodID | methFarragoTransformInputBindingCons |
| Java constructor FarragoTransform.InputBinding.InputBinding. | |
| static jmethodID | methFarragoRuntimeContextStatementClassForName |
| Java method FarragoRuntimeContext.statementClassForName. | |
| static jmethodID | methFarragoRuntimeContextFindFarragoTransform |
| Java method FarragoRuntimeContext.findFarragoTransform. | |
| static jclass | classUtil |
| Java class org.eigenbase.util.Util. | |
| static jmethodID | methUtilGetStackTrace |
| Java method org.eigenbase.util.Util.getStackTrace(Throwable). | |
| static jclass | classLong |
| java.lang.Long | |
| static jclass | classInteger |
| java.lang.Integer | |
| static jclass | classShort |
| java.lang.Short | |
| static jclass | classDouble |
| java.lang.Double | |
| static jclass | classFloat |
| java.lang.Float | |
| static jclass | classBoolean |
| java.lang.Boolean | |
| static jmethodID | methLongValueOf |
| java.lang.Long.valueOf(long) | |
| static jmethodID | methIntegerValueOf |
| java.lang.Integer.valueOf(int) | |
| static jmethodID | methShortValueOf |
| java.lang.Short.valueOf(short) | |
| static jmethodID | methDoubleValueOf |
| java.lang.Double.valueOf(double) | |
| static jmethodID | methFloatValueOf |
| java.lang.Float.valueOf(float) | |
| static jmethodID | methBooleanValueOf |
| java.lang.Boolean.valueOf(boolean) | |
| static jmethodID | methLongValue |
| java.lang.Long.longValue() | |
| static jmethodID | methIntValue |
| java.lang.Integer.intValue() | |
| static jmethodID | methShortValue |
| java.lang.Short.shortValue() | |
| static jmethodID | methDoubleValue |
| java.lang.Double.doubleValue() | |
| static jmethodID | methFloatValue |
| java.lang.Float.floatValue() | |
| static jmethodID | methBooleanValue |
| java.lang.Boolean.booleanValue() | |
| Static Private Member Functions | |
| static JNIEnv * | getAttachedJavaEnv (bool &needDetach) |
| Attaches a JNIEnv for the current thread. | |
| static void | traceHandleCount (const char *pAction, const char *pType, const void *pHandle) |
| JNI handle tracing method. | |
| Static Private Attributes | |
| static JavaVM * | pVm |
| Loaded JavaVM instance. | |
| static jmethodID | methGetClassName |
| java.lang.Class.getName() | |
| static jmethodID | methGetInterfaces |
| java.lang.Class.getInterfaces() | |
| static jmethodID | methGetModifiers |
| java.lang.Class.getModifiers() | |
| static jclass | classModifier |
| class java.lang.Modifier | |
| static jmethodID | methIsPublic |
| java.lang.reflect.Modifier.isPublic() | |
| static jmethodID | methIterator |
| java.util.Collection.iterator() | |
| static jmethodID | methHasNext |
| java.util.Iterator.hasNext() | |
| static jmethodID | methNext |
| java.util.Iterator.next() | |
| static jmethodID | methToString |
| java.lang.Object.toString() | |
| static AtomicCounter | handleCount |
| Counter for all handles opened by Farrago. | |
| static bool | traceHandleCountEnabled |
| Flag indicating whether tracing of handles is enabled. | |
| static bool | closeHandleCountTraceOnZero |
| Flag indicating that the JNI handle trace stream should be closed when the handle count reaches 0. | |
| static std::ofstream | handleCountTraceStream |
| Stream for tracing handles opened by Farrago. | |
| static JavaThreadTracker | threadTracker |
| Tracker for JNI thread attach/detach. | |
| Friends | |
| class | JniEnvAutoRef |
Detailed Description
Static utility methods for dealing with JNI.
Definition at line 196 of file JniUtil.h.
Member Function Documentation
| JNIEnv * JniUtil::getAttachedJavaEnv | ( | bool & | needDetach | ) | [static, private] |
|---|
Attaches a JNIEnv for the current thread.
Can be used in contexts where the JNIEnv hasn't been passed down from the native entry point.
Parameters:
| needDetach | receives true if thread needs to be detached; false if it was already attached on entry |
|---|
Returns:
current thread's JNIEnv
Definition at line 340 of file JniUtil.cpp.
References jniVersion, and pVm.
00341 {
00342 void *pEnv = NULL;
00343 jint rc = pVm->GetEnv(&pEnv,jniVersion);
00344 if (rc == JNI_OK) {
00345
00346 needDetach = false;
00347 return static_cast<JNIEnv *>(pEnv);
00348 }
00349 needDetach = true;
00350 rc = pVm->AttachCurrentThread(&pEnv,NULL);
00351 assert(rc == 0);
00352 assert(pEnv);
00353 return static_cast<JNIEnv *>(pEnv);
00354 }
| void JniUtil::traceHandleCount | ( | const char * | pAction, |
|---|---|---|---|
| const char * | pType, | ||
| const void * | pHandle | ||
| ) | [static, private] |
| void JniUtil::initDebug | ( | char const * | envVarName | ) | [static] |
|---|
Initializes JNI debugging.
Parameters:
| envVarName | name of environment variable used to trigger debugging |
|---|
Definition at line 115 of file JniUtil.cpp.
References debugger_signalHandler().
Referenced by JNI_OnLoad().
00116 {
00117 char *pDebug = getenv(envVarName);
00118 if (pDebug && (atoi(pDebug) >= 1)) {
00119 char pidstr[32];
00120 snprintf(pidstr, 32, "%d", getpid());
00121 std::cout << "Waiting for debugger; pid=" << pidstr << std::endl;
00122 std::cout.flush();
00123 #ifdef MSVC
00124
00125
00126 _sleep(600000);
00127 #else
00128
00129
00130
00131
00132
00133 if (atoi(pDebug) == 1) {
00134 sleep(60000);
00135 } else {
00136 struct sigaction act;
00137 struct sigaction oldact;
00138
00139 act.sa_handler = debugger_signalHandler;
00140 sigemptyset(&act.sa_mask);
00141 act.sa_flags = 0;
00142
00143 if (!sigaction(SIGHUP, &act, &oldact)) {
00144
00145 pause();
00146
00147
00148 sigaction(SIGHUP, &oldact, NULL);
00149 } else {
00150
00151 sleep(60000);
00152 }
00153 }
00154 #endif
00155 }
00156 }
| jint JniUtil::init | ( | JavaVM * | pVm | ) | [static] |
|---|
Initializes our JNI support.
Parameters:
| pVm | the VM in which we're loaded |
|---|
Definition at line 200 of file JniUtil.cpp.
References classBoolean, classDouble, classFarragoTransformInputBinding, classFloat, classInteger, classLong, classModifier, classRhBase64, classShort, classUtil, classUUID, AutoBacktrace::install(), jniVersion, methBase64Decode, methBooleanValue, methBooleanValueOf, methDoubleValue, methDoubleValueOf, methFarragoRuntimeContextFindFarragoTransform, methFarragoRuntimeContextStatementClassForName, methFarragoTransformExecute, methFarragoTransformInit, methFarragoTransformInputBindingCons, methFarragoTransformRestart, methFarragoTransformSetInputFetchTimeout, methFloatValue, methFloatValueOf, methGetClassName, methGetIndexRoot, methGetInterfaces, methGetJavaStreamHandle, methGetModifiers, methHasNext, methIntegerValueOf, methIntValue, methIsPublic, methIterator, methLongValue, methLongValueOf, methNext, methRandomUUID, methShortValue, methShortValueOf, methToString, methUtilGetStackTrace, and pVm.
Referenced by JNI_OnLoad().
00201 {
00202
00203
00204
00205
00206
00207 AutoBacktrace::install(false);
00208 pVm = pVmInit;
00209 JniEnvAutoRef pEnv;
00210 jclass classClass = pEnv->FindClass("java/lang/Class");
00211 jclass classObject = pEnv->FindClass("java/lang/Object");
00212 jclass classCollection = pEnv->FindClass("java/util/Collection");
00213 jclass classIterator = pEnv->FindClass("java/util/Iterator");
00214
00215
00216
00217
00218 classRhBase64 = pEnv->FindClass("org/eigenbase/util/RhBase64");
00219 classRhBase64 = (jclass) pEnv->NewGlobalRef(classRhBase64);
00220 classUUID = pEnv->FindClass("java/util/UUID");
00221 classUUID = (jclass) pEnv->NewGlobalRef(classUUID);
00222
00223 jclass classFennelJavaStreamMap = pEnv->FindClass(
00224 "net/sf/farrago/fennel/FennelJavaStreamMap");
00225 jclass classFarragoTransform = pEnv->FindClass(
00226 "net/sf/farrago/runtime/FarragoTransform");
00227
00228
00229 jclass tempInputBinding =
00230 pEnv->FindClass(
00231 "net/sf/farrago/runtime/FarragoTransform$InputBinding");
00232 classFarragoTransformInputBinding =
00233 (jclass)pEnv->NewGlobalRef(tempInputBinding);
00234
00235 jclass classFarragoRuntimeContext = pEnv->FindClass(
00236 "net/sf/farrago/runtime/FarragoRuntimeContext");
00237 methGetClassName = pEnv->GetMethodID(
00238 classClass,"getName","()Ljava/lang/String;");
00239 methGetInterfaces = pEnv->GetMethodID(
00240 classClass,"getInterfaces","()[Ljava/lang/Class;");
00241 methGetModifiers = pEnv->GetMethodID(
00242 classClass,"getModifiers","()I");
00243
00244 jclass tempClassModifier = pEnv->FindClass("java/lang/reflect/Modifier");
00245 classModifier = (jclass)pEnv->NewGlobalRef(tempClassModifier);
00246 methIsPublic = pEnv->GetStaticMethodID(classModifier, "isPublic", "(I)Z");
00247
00248 methIterator = pEnv->GetMethodID(
00249 classCollection,"iterator","()Ljava/util/Iterator;");
00250 methHasNext = pEnv->GetMethodID(
00251 classIterator,"hasNext","()Z");
00252 methNext = pEnv->GetMethodID(
00253 classIterator,"next","()Ljava/lang/Object;");
00254 methGetJavaStreamHandle = pEnv->GetMethodID(
00255 classFennelJavaStreamMap,"getJavaStreamHandle",
00256 "(I)J");
00257 methGetIndexRoot = pEnv->GetMethodID(
00258 classFennelJavaStreamMap,"getIndexRoot",
00259 "(J)J");
00260 methToString = pEnv->GetMethodID(
00261 classObject,"toString","()Ljava/lang/String;");
00262
00263 jclass tempClassLong = pEnv->FindClass("java/lang/Long");
00264 classLong = (jclass)pEnv->NewGlobalRef(tempClassLong);
00265 methLongValueOf =
00266 pEnv->GetStaticMethodID(classLong, "valueOf", "(J)Ljava/lang/Long;");
00267 methLongValue = pEnv->GetMethodID(classLong, "longValue", "()J");
00268
00269 jclass tempClassInteger = pEnv->FindClass("java/lang/Integer");
00270 classInteger = (jclass)pEnv->NewGlobalRef(tempClassInteger);
00271 methIntegerValueOf =
00272 pEnv->GetStaticMethodID(
00273 classInteger, "valueOf", "(I)Ljava/lang/Integer;");
00274 methIntValue = pEnv->GetMethodID(classInteger, "intValue", "()I");
00275
00276 jclass tempClassShort = pEnv->FindClass("java/lang/Short");
00277 classShort = (jclass)pEnv->NewGlobalRef(tempClassShort);
00278 methShortValueOf =
00279 pEnv->GetStaticMethodID(classShort, "valueOf", "(S)Ljava/lang/Short;");
00280 methShortValue = pEnv->GetMethodID(classShort, "shortValue", "()S");
00281
00282 jclass tempClassDouble = pEnv->FindClass("java/lang/Double");
00283 classDouble = (jclass)pEnv->NewGlobalRef(tempClassDouble);
00284 methDoubleValueOf =
00285 pEnv->GetStaticMethodID(
00286 classDouble, "valueOf", "(D)Ljava/lang/Double;");
00287 methDoubleValue = pEnv->GetMethodID(classDouble, "doubleValue", "()D");
00288
00289 jclass tempClassFloat = pEnv->FindClass("java/lang/Float");
00290 classFloat = (jclass)pEnv->NewGlobalRef(tempClassFloat);
00291 methFloatValueOf =
00292 pEnv->GetStaticMethodID(classFloat, "valueOf", "(F)Ljava/lang/Float;");
00293 methFloatValue = pEnv->GetMethodID(classFloat, "floatValue", "()F");
00294
00295 jclass tempClassBoolean = pEnv->FindClass("java/lang/Boolean");
00296 classBoolean = (jclass)pEnv->NewGlobalRef(tempClassBoolean);
00297 methBooleanValueOf =
00298 pEnv->GetStaticMethodID(
00299 classBoolean, "valueOf", "(Z)Ljava/lang/Boolean;");
00300 methBooleanValue = pEnv->GetMethodID(classBoolean, "booleanValue", "()Z");
00301
00302 methBase64Decode = pEnv->GetStaticMethodID(
00303 classRhBase64,"decode","(Ljava/lang/String;)[B");
00304 methRandomUUID = pEnv->GetStaticMethodID(
00305 classUUID,"randomUUID","()Ljava/util/UUID;");
00306
00307 methFarragoTransformInit = pEnv->GetMethodID(
00308 classFarragoTransform, "init",
00309 "(Lnet/sf/farrago/runtime/FarragoRuntimeContext;Ljava/lang/String;[Lnet/sf/farrago/runtime/FarragoTransform$InputBinding;)V");
00310 methFarragoTransformExecute = pEnv->GetMethodID(
00311 classFarragoTransform, "execute", "(Ljava/nio/ByteBuffer;J)I");
00312 methFarragoTransformRestart = pEnv->GetMethodID(
00313 classFarragoTransform, "restart", "()V");
00314 methFarragoTransformSetInputFetchTimeout = pEnv->GetMethodID(
00315 classFarragoTransform, "setInputFetchTimeout", "(J)V");
00316 methFarragoTransformInputBindingCons =
00317 pEnv->GetMethodID(
00318 classFarragoTransformInputBinding, "",
00319 "(Ljava/lang/String;I)V");
00320 methFarragoRuntimeContextStatementClassForName =
00321 pEnv->GetMethodID(
00322 classFarragoRuntimeContext,
00323 "statementClassForName",
00324 "(Ljava/lang/String;)Ljava/lang/Class;");
00325 methFarragoRuntimeContextFindFarragoTransform =
00326 pEnv->GetMethodID(
00327 classFarragoRuntimeContext,
00328 "findFarragoTransform",
00329 "(Ljava/lang/String;)Lnet/sf/farrago/runtime/FarragoTransform;");
00330
00331 jclass tempClassUtil = pEnv->FindClass("org/eigenbase/util/Util");
00332 classUtil = (jclass) pEnv->NewGlobalRef(tempClassUtil);
00333 methUtilGetStackTrace = pEnv->GetStaticMethodID(
00334 classUtil, "getStackTrace",
00335 "(Ljava/lang/Throwable;)Ljava/lang/String;");
00336
00337 return jniVersion;
00338 }
| void JniUtil::configure | ( | const JniUtilParams & | params | ) | [static] |
|---|
| void JniUtil::shutdown | ( | | ) | [static] | | ---------------------- | - | | - | ---------- |
| std::string JniUtil::getClassName | ( | jclass | jClass | ) | [static] |
|---|
| std::string JniUtil::getFirstPublicInterfaceName | ( | jclass | jClass | ) | [static] |
|---|
Calls java.lang.Class.getInterfaces() and returns result of java.lang.Class.getClassName() for the first public interface returned.
Parameters:
| jClass | the Class of interest |
|---|
Returns:
the fully-qualified class name of the Class's first public interface
Definition at line 371 of file JniUtil.cpp.
References classModifier, getClassName(), methGetInterfaces, methGetModifiers, and methIsPublic.
Referenced by JniProxy::getInterfaceName().
00372 { 00373 JniEnvAutoRef pEnv; 00374 00375 jobjectArray ifaces = 00376 reinterpret_cast( 00377 pEnv->CallObjectMethod(jClass, methGetInterfaces)); 00378 assert(ifaces); 00379 00380 for (jsize i = 0, len = pEnv->GetArrayLength(ifaces); i < len; i++) { 00381 jclass iface = 00382 reinterpret_cast( 00383 pEnv->GetObjectArrayElement(ifaces, i)); 00384 assert(iface); 00385 00386 jint modifiers = 00387 pEnv->CallIntMethod(iface, methGetModifiers); 00388 00389 jboolean isPublic = 00390 pEnv->CallStaticBooleanMethod( 00391 classModifier, methIsPublic, modifiers); 00392 00393 if (isPublic) { 00394 return getClassName(iface); 00395 } 00396 } 00397 00398 return std::string("(none)"); 00399 }
| std::string JniUtil::toStdString | ( | JniEnvRef | pEnv, |
|---|---|---|---|
| jstring | jString | ||
| ) | [static] |
| jstring JniUtil::toString | ( | JniEnvRef | pEnv, |
|---|---|---|---|
| jobject | jObject | ||
| ) | [static] |
| jobject JniUtil::getIter | ( | JniEnvRef | pEnv, |
|---|---|---|---|
| jobject | jCollection | ||
| ) | [static] |
Calls java.util.Collection.iterator().
Parameters:
| pEnv | the JniEnvRef for the current thread |
|---|---|
| jCollection | the Java collection |
Returns:
the new Java iterator
Definition at line 426 of file JniUtil.cpp.
References methIterator.
Referenced by ProxyAggStreamDef::getAggInvocation(), ProxyTupleAccessor::getAttrAccessor(), ProxyTupleDescriptor::getAttrDescriptor(), ProxyTupleProjection::getAttrProjection(), ProxyLcsRowScanStreamDef::getClusterScan(), ProxyFlatFileTupleStreamDef::getColumn(), ProxyCorrelationJoinStreamDef::getCorrelations(), ProxyBarrierStreamDef::getDynamicParameter(), ProxyExecutionStreamDef::getDynamicParamUse(), ProxyLbmSplicerStreamDef::getIndexAccessor(), ProxyTableWriterDef::getIndexWriter(), ProxyExecutionStreamDef::getInputFlow(), ProxyNestedLoopJoinStreamDef::getLeftJoinKey(), ProxyExecutionStreamDef::getOutputFlow(), ProxyCmdOpenDatabase::getParams(), ProxyWindowDef::getPartition(), ProxyReshapeStreamDef::getReshapeParameter(), ProxyIndexSearchDef::getSearchKeyParameter(), ProxyCmdPrepareExecutionStreamGraph::getStreamDefs(), and ProxyWindowStreamDef::getWindow().
00427 { 00428 return pEnv->CallObjectMethod(jCollection,methIterator); 00429 }
| jobject JniUtil::getNextFromIter | ( | JniEnvRef | pEnv, |
|---|---|---|---|
| jobject | jIter | ||
| ) | [static] |
Calls java.util.Iterator.hasNext/next().
Parameters:
| pEnv | the JniEnvRef for the current thread |
|---|---|
| jIter | the iterator to advance |
Returns:
next object from iterator, or NULL if !hasNext()
Definition at line 431 of file JniUtil.cpp.
References methHasNext, and methNext.
Referenced by JniProxyIter< T >::operator++().
00432 { 00433 if (!pEnv->CallBooleanMethod(jIter,methHasNext)) { 00434 return NULL; 00435 } 00436 return pEnv->CallObjectMethod(jIter,methNext); 00437 }
| uint JniUtil::lookUpEnum | ( | std::string * | pSymbols, |
|---|---|---|---|
| std::string const & | symbol | ||
| ) | [static] |
| void JniUtil::detachJavaEnv | ( | | ) | [static] | | --------------------------- | - | | - | ---------- |
| void JniUtil::incrementHandleCount | ( | const char * | pType, |
|---|---|---|---|
| const void * | pHandle | ||
| ) | [static] |
| void JniUtil::decrementHandleCount | ( | const char * | pType, |
|---|---|---|---|
| const void * | pHandle | ||
| ) | [static] |
| static int JniUtil::getHandleCount | ( | | ) | [inline, static] | | ---------------------------------- | - | | - | ------------------ |
Constructs a FemTupleDescriptor xmi string.
Definition at line 473 of file JniUtil.cpp.
00474 { 00475 std::ostringstream oss; 00476 oss << "<XMI xmi.version = '1.2' " 00477 << "xmlns:FEMFennel = 'org.omg.xmi.namespace.FEMFennel'>" << std::endl; 00478 oss << "<XMI.content>" << std::endl; 00479 oss << "FEMFennel:TupleDescriptor" << std::endl; 00480 for (uint i = 0; i < tupleDescriptor.size(); ++i) { 00481 TupleAttributeDescriptor const &attrDescriptor = 00482 tupleDescriptor[i]; 00483 oss << "FEMFennel:TupleDescriptor.AttrDescriptor"; 00484 oss << "<FEMFennel:TupleAttrDescriptor "; 00485 oss << "typeOrdinal='"; 00486 oss << attrDescriptor.pTypeDescriptor->getOrdinal(); 00487 oss << "' "; 00488 oss << "isNullable='"; 00489 oss << (attrDescriptor.isNullable ? "true" : "false"); 00490 oss << "' "; 00491 oss << "byteLength='"; 00492 oss << attrDescriptor.cbStorage; 00493 oss << "' "; 00494 oss << "/>" << std::endl; 00495 oss << "</FEMFennel:TupleDescriptor.AttrDescriptor>"; 00496 } 00497 oss << "" << std::endl; 00498 oss << "</XMI.content>" << std::endl; 00499 oss << "" << std::endl; 00500 std::string s = oss.str(); 00501 return s; 00502 }
Friends And Related Function Documentation
Member Data Documentation
Java method FarragoTransform.init.
Definition at line 325 of file JniUtil.h.
Referenced by init().
Java method FarragoTransform.setInputFetchTimeout.
Definition at line 335 of file JniUtil.h.
Referenced by init().
Java class FarragoTransform.InputBinding.
Definition at line 345 of file JniUtil.h.
Referenced by init().
Java constructor FarragoTransform.InputBinding.InputBinding.
Definition at line 350 of file JniUtil.h.
Referenced by init().
Java method FarragoRuntimeContext.statementClassForName.
Definition at line 355 of file JniUtil.h.
Referenced by init().
The documentation for this class was generated from the following files:
- /home/pub/open/dev/fennel/farrago/JniUtil.h
- /home/pub/open/dev/fennel/farrago/JniUtil.cpp
